web-dev-qa-db-ja.com

項目が配列/リストにあるかどうかを確認

文字列の配列がある場合、forループを実行せずに、文字列が配列内にあるかどうかを確認できますか?具体的には、私はifステートメント内でそれを実行する方法を探しています。

if [check that item is in array]:
174
SomeKittens

あなたが "配列"を言うところで "リスト"を意味すると仮定すると、あなたは行うことができます

if item in my_list:
    # whatever

これはリストだけではなく、どのコレクションにも使えます。辞書の場合、与えられたキーが辞書に存在するかどうかをチェックします。

337
Sven Marnach

また、「配列」と言うときは、「リスト」を意味すると想定します。 Sven Marnachの解決策はいいです。あなたがリスト上で繰り返しチェックをするつもりなら、それはそれをセットまたは凍結セットに変換する価値があるかもしれません。あなたのstrsのリストがsubjectsと呼ばれると仮定します。

subject_set = frozenset(subjects)
if query in subject_set:
    # whatever
14
Michael Hoffman

ラムダ関数を使用してください。

配列があるとしましょう。

nums = [0,1,5]

5がnumsに含まれているかどうかを確認します。

(len(filter (lambda x : x == 5, nums)) > 0)

このソリューションはより堅牢です。特定の条件を満たす数が配列numsに含まれているかどうかを確認できます。

たとえば、5以上の数値がnumsに存在するかどうかを確認します。

(len(filter (lambda x : x >= 5, nums)) > 0)
2
Marquistador

配列には.valuesを使わなければなりません。例えば、カラム名がtest ['Name']のデータフレームがあるとします。

if name in test['Name'].values :
   print(name)

通常のリストでは、.valuesを使う必要はありません。

0
sam komo