下面是我搜索名为pair的元组列表的函数的代码。列表中的每个元组由两个元素组成。
函数中给出的元素(称为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)
现在,此代码将拉出包含其中项目的整个元组。
我想将此代码更改为仅返回元组中的其他元素,并将其作为字符串而不是元组返回。
答案 0 :(得分:6)
这应该做你想要的:
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'
答案 1 :(得分:0)
不是检查成员资格,而是检查是否相等。
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)
答案 2 :(得分:0)
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