277

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

if [check that item is in array]:
4

5 に答える 5

519

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

if item in my_list:
    # whatever

これは、リストだけでなく、すべてのコレクションで機能します。辞書の場合、指定されたキーが辞書に存在するかどうかをチェックします。

于 2012-06-28T19:40:26.790 に答える
21

また、「配列」と言うときは「リスト」を意味すると仮定します。SvenMarnachのソリューションは優れています。リストに対して繰り返しチェックを行う場合は、セットまたはフリーズセットに変換する価値があるかもしれません。これは、チェックごとに高速になる可能性があります。strsのリストが呼び出されると仮定しますsubjects

subject_set = frozenset(subjects)
if query in subject_set:
    # whatever
于 2012-06-28T19:43:54.647 に答える
6

ラムダ関数を使用します。

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

nums = [0,1,5]

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

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

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

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

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

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

(len(filter (lambda x : x >= 5, nums)) > 0)
于 2017-09-11T16:33:59.217 に答える
2

配列には.valuesを使用する必要があります。たとえば、列名がtest ['Name']のデータフレームがある場合、次のことができます。

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

通常のリストの場合、.valuesを使用する必要はありません

于 2017-11-25T11:06:10.113 に答える
-6

配列にも同じ構文を使用できます。たとえば、Pandasシリーズ内を検索すると次のようになります。

ser = pd.Series(['some', 'strings', 'to', 'query'])

if item in ser.values:
    # do stuff
于 2015-12-11T23:32:01.037 に答える