for
文字列の配列がある場合、ループを実行せずに文字列が配列に含まれているかどうかを確認できますか?具体的には、ステートメント内でそれを行う方法を探しているif
ので、次のようになります。
if [check that item is in array]:
あなたが「配列」と言う「リスト」を意味すると仮定すると、あなたはすることができます
if item in my_list:
# whatever
これは、リストだけでなく、すべてのコレクションで機能します。辞書の場合、指定されたキーが辞書に存在するかどうかをチェックします。
また、「配列」と言うときは「リスト」を意味すると仮定します。SvenMarnachのソリューションは優れています。リストに対して繰り返しチェックを行う場合は、セットまたはフリーズセットに変換する価値があるかもしれません。これは、チェックごとに高速になる可能性があります。strsのリストが呼び出されると仮定しますsubjects
:
subject_set = frozenset(subjects)
if query in subject_set:
# whatever
ラムダ関数を使用します。
配列があるとしましょう:
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)
配列には.valuesを使用する必要があります。たとえば、列名がtest ['Name']のデータフレームがある場合、次のことができます。
if name in test['Name'].values :
print(name)
通常のリストの場合、.valuesを使用する必要はありません
配列にも同じ構文を使用できます。たとえば、Pandasシリーズ内を検索すると次のようになります。
ser = pd.Series(['some', 'strings', 'to', 'query'])
if item in ser.values:
# do stuff