-7

繰り返しなしでリスト内の要素を見つける方法を知りたい

4

3 に答える 3

9

リストのmylist.index("blah")メソッドは、項目「何とか」が最初に出現したインデックスを返します。

>>> ["item 1", "blah", "item 3"].index("blah")
1
>>> ["item 1", "item 2", "blah"].index("blah")
2

見つからない場合は ValueError が発生します。

>>> ["item 1", "item 2", "item 3"].index("not found")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.index(x): x not in list

inキーワードを使用して、アイテムがリストにあるかどうかを判断することもできます(ただし、場所ではありません)。

>>> "not found" in ["item 1", "blah", "item 3"]
False
>>> "item 3" in ["item 1", "blah", "item 3"]
True

Harper Shelby がコメントしたように、Python はアイテムを見つけるために内部的に反復する必要がありますが、データ構造が C で実装されているため、インデックスまたは in メソッドはPython で実行するよりもわずかに高速である可能性があります。

"x" in mylist

..よりもはるかに整頓されています..

found = False
for cur in mylist:
    if cur == "x":
        found = True
于 2009-05-13T13:59:42.693 に答える
5

これはやや奇妙な質問です。を使用したホットラインが必要$someDeityですか、それとも別の関数に反復を実行してもらいたいですか、それともメンバーシップをテストするためのより効率的な方法が必要ですか?

最初のケースでは、私はあなたを助けることができません。2 番目のケースでは、リストのドキュメント、特にindexメソッドを参照してください。3 番目のケースでは、 を作成してキーワードsetを使用します。inセットの作成は、リストを何度も検索する場合にのみ効果があることに注意してください。

>>> l = [1, 2, 3]
>>> l.index(2)
1
>>> 3 in l
True
>>> ls = set(l)
>>> 3 in ls
True
于 2009-05-13T14:03:49.847 に答える
4

in次の構文も使用できます。

>>> l = [1,2,3]
>>> 1 in l
True
于 2009-05-13T14:03:45.823 に答える