我有一个像这样的列表
[[('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)
(如果可能,不使用循环)?
答案 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