3

我有一个由 3 个项目组成的列表:

a = [[1,2,3], [4,5,6], [7,8,9], [10,11,12]]

我需要检查给定的值,比如 7,是否存在[0]a. 在这种情况下,结果是True因为它存在于a[2][0].

这就是我想出的,我想知道是否有更好的方法来做到这一点:

a = [[1,2,3], [4,5,6], [7,8,9], [10,11,12]]
number = 7
out = False

for item in a:
    if number == item[0]:
        out = True
4

2 回答 2

7

有很多方法可以更紧凑地编写它:

7 in (x[0] for x in a)  # using a generator to avoid creating the full list of values

或使用一些标准库模块:

import operator
import itertools

first_elem = operator.itemgetter(0)

7 in itertools.imap(first_elem, a)
于 2013-07-18T22:22:43.760 回答
3

使用any很好,因为它会在找到值时立即中断:

>>> any(7 == i[0] for i in a)
True
于 2013-07-18T22:28:27.493 回答