簡體   English   中英

對於元組列表中的元素,返回元組中的其他元素

[英]For element in list of tuples, return other element in tuple

以下是我的函數代碼,該函數搜索稱為對的元組列表。 列表中的每個元組都包含兩個元素。

函數中給定的元素(稱為item)可以位於元組的0或1位置,但是列表中的所有元組僅由2個元素組成。

pairs = [('a','b'),('c','d'),('e','f'),('c','a')]

def connections(pairs, item):
    output = ''
    for j in pairs:
        if item in j:
            output = output + str(j)
    return (output)

現在,此代碼將拉出其中包含該項目的整個元組。

我想更改此代碼以僅返回元組中的另一個元素,並將其作為字符串而不是元組返回。

這應該做您想要的:

def connection(pairs, item):
    return ''.join([p[1-p.index(item)] for p in pairs if item in p])

這是一些示例輸出:

>>> connection([('a','b'),('c','d'),('e','f'),('c','a')], 'a')
'bc'

而不是檢查成員身份,而是檢查是否相等。

def connections(pairs, item):
    output = ''
    for j in pairs:
        if item == j[0]:
            output += j[1]
        elif item == j[1]:
            output += j[0]
    return output

請注意,我已經將串聯簡化為擴充分配,並刪除了不必要的str()調用,因為它們已經是字符串了。 或者,您可以按照以下步驟進行操作:

def connections(pairs, item):
    return ''.join(j[0] if item==j[1] else j[1] if item==j[0] else '' for j in pairs)
pairs = [('a','b'),('c','d'),('e','f'),('c','a')]

def connections(pairs, item):
    output = ''
    for j in pairs:
        if item in j:
            index = 1-j.index(item)
            output = output + str(j[index])
    return (output)

print(connections(pairs, 'c'))

輸出:

da

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM