Answers:
如果只希望第一个数字匹配,则可以这样操作:
[item for item in a if item[0] == 1]
如果您仅搜索其中包含1的元组:
[item for item in a if 1 in item]
实际上,有一种聪明的方法可以用于任何元组列表,其中每个元组的大小为2:您可以将列表转换成一个字典。
例如,
test = [("hi", 1), ("there", 2)]
test = dict(test)
print test["hi"] # prints 1
dict(X)
将X转换为字典,其中任何常见的第一个元素的最后一个元组都是所使用的值。在OP的示例中,这将返回(1,4),而不是(1,2)和(1,4)。
或takewhile
,(此外,还会显示更多值的示例):
>>> a= [(1,2),(1,4),(3,5),(5,7),(0,2)]
>>> import itertools
>>> list(itertools.takewhile(lambda x: x[0]==1,a))
[(1, 2), (1, 4)]
>>>
如果未排序,例如:
>>> a= [(1,2),(3,5),(1,4),(5,7)]
>>> import itertools
>>> list(itertools.takewhile(lambda x: x[0]==1,sorted(a,key=lambda x: x[0]==1)))
[(1, 2), (1, 4)]
>>>