0

我有一个这样的列表

[[('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)在列表中(如果可能不使用循环)?

4

2 回答 2

3

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

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

c你的清单在哪里。

于 2013-03-10T06:33:46.180 回答
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
于 2013-03-10T06:47:58.497 回答