在检索值和获取匹配值的元组时遇到问题。
我有一个类似的元组
[(1, ['a', 'b', 'c', 'd']),
(2, ['e', 'f', 'g', 'h']),
(1, ['p', 'q']),
(4, [ 'x', 'y', 'z'])]
我们如何迭代此集合以查找它在整个集合中是否具有g并在Python中将(2, ['e', 'f', 'g', 'h'])
作为返回值获得
tup = [(1, ['a', 'b', 'c', 'd']), (2, ['e', 'f', 'g', 'h']),(1, ['p', 'q']), (4, [ 'x', 'y', 'z'])]
key = 'g'
if key in [n[-1] for n in tup]
总是返回假。
您可以使用列表理解,并根据条件保留子列表:
l = [(1, ['a', 'b', 'c', 'd']), (2, ['e', 'f', 'g', 'h']),
(1, ['p', 'q']), (4, [ 'x', 'y', 'z'])]
[t for t in l if 'g' in t[1]]
# [(2, ['e', 'f', 'g', 'h'])]