3

たとえば、3つのアイテムのリストから作成されたリストがあります。

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

特定の値、たとえば 7 が のいずれかのリストの最初の項目 (つまり、 items [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 に答える