选择列表列表的第一个元素

时间:2013-03-10 06:26:52

标签: python

我有一个像这样的列表

[[('C', '0', 8.625), ('A', '0', 4.5)], [('B', '0', 15.3125), ('D', '2', 6.0625)],
[('C', '1', 8.1875), ('D', '2', 6.0625)], [('G', '2', 11.0625), ('D', '2', 6.0625)],
[('G', '2', 10.1875), ('C', '1', 8.1875)]] 

如何检查列表中是否有('C', '0', 8.625)(如果可能,不使用循环)?

2 个答案:

答案 0 :(得分:3)

假设您的列表有3个“级别”,请尝试:

any(('C', '0', 8.625) in li for li in c)

其中c是您的列表。

答案 1 :(得分:3)

您可以按@Schoolboy建议的隐式循环执行所有列表中的成员资格操作,也可以使用itertools.chain

>>> some_list = [[('C', '0', 8.625), ('A', '0', 4.5)], [('B', '0', 15.3125), ('D', '2', 6.0625)],
[('C', '1', 8.1875), ('D', '2', 6.0625)], [('G', '2', 11.0625), ('D', '2', 6.0625)],
[('G', '2', 10.1875), ('C', '1', 8.1875)]]
>>> from itertools import chain
>>> ('C', '0', 8.625) in chain(*some_list)
True