リストは、すべてのデータ型の要素をコレクションとして保存するため、Python の重要なコンテナーです。日常的なプログラミングには、特定のリスト操作の知識が必要です。この記事では、リストに値が存在するかどうかを確認する最速の方法について説明します。 パイソン 。
例
Input: test_list = [1, 6, 3, 5, 3, 4] 3 # Check if 3 exist or not. Output: True Explanation: The output is True because the element we are looking is exist in the list.>
Pythonのリストに要素が存在するかどうかを確認する
- 使用する で 声明
- を使って ループ
- 使用する any() 関数
- 使用する カウント() 関数
- 使用する 選別 bisect_left と セット()
- 使用する 探す() 方法
- 使用する カウンター() 関数
- 使用する Try-Except ブロック
を使用してリストに要素が存在するかどうかを確認します。 で 声明
この方法では、すべての要素を反復処理するループを簡単に使用して、ターゲット要素の存在を確認します。これは、リスト内の要素の存在を確認する最も簡単な方法です。 Python は、リスト内に要素が存在するかどうかを確認する最も一般的な方法です。この特定の方法では、要素がリストに存在する場合は True を返し、要素がリストに存在しない場合は False を返します。このチェック方法を実践するためにリストをソートする必要はありません。
Python3 lst=[ 1, 6, 3, 5, 3, 4 ] #checking if element 7 is present # in the given list or not i=7 # if element present then return # exist otherwise not exist if i in lst: print('exist') else: print('not exist')>
出力
not exist>
時間計算量: ○(1)
補助スペース: O(n)、n は要素の総数です。
tostring メソッド
ループを使用してリスト内に要素が存在するかどうかを検索します
指定された Python コードは、という名前のリストを初期化します。test_list>
いくつかの整数要素を使用します。次に、リスト内の各要素を反復処理します。for>
ループ。内部 ループ 、現在の要素がi>
を使用すると、値は 4 に等しくなります。if>
声明。条件が true の場合、「Element Exists」がコンソールに出力されます。このコードは、数値 4 がリストに存在する場合にメッセージを出力します。この場合、数値 4 がリストに存在するため、Element Exists が出力されます。[1, 6, 3, 5, 3, 4]>
。
Python3
# Initializing list test_list = [1, 6, 3, 5, 3, 4] # Checking if 4 exists in list for i in test_list: if(i == 4): print('Element Exists')>
出力:
Element Exists>
時間計算量: の上)
補助スペース: ○(1)
any() 関数を使用してリストに要素が存在するかどうかを確認します
これは、 any()>
関数 ジェネレーター式を使用します。ジェネレーター式は各要素を反復処理します。test_list>
そして、それがリスト内に複数回出現するかどうかを確認します。このチェックの結果は変数に格納されます。result>
。最後に、コードは重複要素があるかどうかを示すメッセージを出力し、重複が存在する場合は「文字列にリスト要素が含まれていますか: True」を表示し、重複が存在しない場合は「文字列にリスト要素が含まれていますか: False」を表示します。
Python3
# Initializing list test_list = [1, 6, 3, 5, 3, 4] result = any(item in test_list for item in test_list) print('Does string contain any list element : ' +str(bool(result)))>
出力:
Does string contain any list element : True>
count() 関数を使用してリストに要素が存在するかどうかを確認します。
組み込みの Python リスト count() メソッドを使用して、渡された要素がリスト内に存在するかどうかを確認します。渡された要素がリスト内に存在する場合、 カウント() メソッドは、リスト全体での出現回数を表示します。ゼロ以外の正の数の場合は、要素がリスト内に存在することを意味します。を使用してリスト内の要素の存在を確認するデモンストレーション カウント() 。
Python3 # Initializing list test_list = [10, 15, 20, 7, 46, 2808] print('Checking if 15 exists in list') # number of times element exists in list exist_count = test_list.count(15) # checking if it is more than 0 if exist_count>0: print('はい、15 はリストに存在します') else: print('いいえ、15 はリストに存在しません')>>
出力:
Checking if 15 exists in list Yes, 15 exists in list>
bisect_left と set を指定した sort を使用して、リストに要素が存在するかどうかを確認します。
リストをセットに変換して使用する それ おそらく、それを使用するだけよりも効率的になる可能性があります。しかし、効率性というプラス面にはマイナス面もあります。その 1 つは、リストの順序が保持されないため、新しいリストを選択すると、余分なスペースを使用する必要があることです。もう 1 つの欠点は、set では重複が許可されていないため、重複した要素が元のリストから削除されてしまうことです。要素の存在をテストする従来の二分探索方法では、リストを最初にソートする必要があるため、要素の順序が保持されません。 bisect_left() 見つかった要素の最初の出現を返します。これは次と同様に機能します。 lower_bound() C++ STL で。
注記: bisect 関数は、要素を挿入する位置のみを示しますが、要素が存在するかどうかの詳細は示しません。
部分誘導体ラテックス
を使用してリスト内の要素の存在を確認するデモンストレーション セット() + および 選別() + bisect_left()
Python3 from bisect import bisect_left ,bisect # Initializing list test_list_set = [ 1, 6, 3, 5, 3, 4 ] test_list_bisect = [ 1, 6, 3, 5, 3, 4 ] print('Checking if 4 exists in list ( using set() + in) : ') # Checking if 4 exists in list # using set() + in test_list_set = set(test_list_set) if 4 in test_list_set : print ('Element Exists') print('Checking if 4 exists in list ( using sort() + bisect_left() ) : ') # Checking if 4 exists in list # using sort() + bisect_left() test_list_bisect.sort() if bisect_left(test_list_bisect, 4)!=bisect(test_list_bisect, 4): print ('Element Exists') else: print('Element doesnt exist')>
出力:
15/100.00
Checking if 4 exists in list ( using set() + in) : Element Exists Checking if 4 exists in list ( using sort() + bisect_left() ) : Element Exists>
find()メソッドを使用してリストに要素が存在するかどうかを確認します
与えられた パイソン コードはリストに数値 15 が存在するかどうかをチェックします。test_list>
。リストの要素を文字列に変換し、ハイフンで連結します。次に、それを使用します。 find()>
方法 結果の文字列に部分文字列 15 が存在するかどうかを確認します。 15 が見つかった場合は、「はい、リストに 15 が存在します。」と表示されます。それ以外の場合は、「いいえ、15 はリストに存在しません」と表示されます。
# Initializing list test_list = [10, 15, 20, 7, 46, 2808] print('Checking if 15 exists in list') x=list(map(str,test_list)) y='-'.join(x) if y.find('15') !=-1: print('Yes, 15 exists in list') else: print('No, 15 does not exists in list')>
出力
Checking if 15 exists in list Yes, 15 exists in list>
Counter()関数を使用してリストに要素が存在するかどうかを確認します
提供された Python コードでは、 Counter>
からのクラスcollections>
の各要素の周波数を計算するモジュールtest_list>
。次に、数値 15 の頻度が 0 より大きいかどうかを確認します。頻度が 0 以外の場合、リストに 15 が存在することを意味し、コードは「はい、リストに 15 が存在します」と出力します。それ以外の場合は、「いいえ、15 はリストに存在しません」と表示されます。のCounter>
クラスは要素の出現を効率的にカウントし、簡単な存在チェックを可能にします。
from collections import Counter test_list = [10, 15, 20, 7, 46, 2808] # Calculating frequencies frequency = Counter(test_list) # If the element has frequency greater than 0 # then it exists else it doesn't exist if(frequency[15]>0): print('はい、15 はリストに存在します') else: print('いいえ、15 はリストに存在しません')>>'
出力 Yes, 15 exists in list>
あるかどうかを検索します。 の Try-Except ブロックを使用してリストに要素が存在する
要素がリスト内に存在するかどうかを確認するためのもう 1 つの方法は、 索引() 方法。このメソッドは、リスト内で最初に出現した要素のインデックスを返すか、要素がリスト内に存在しない場合は ValueError をスローします。このメソッドを使用するには、index() への呼び出しを try-excel ブロックでラップして、ValueError をキャッチし、発生した場合は False を返すことができます。
Python3 def element_exists(lst, element): # Try to get the index of the element in the list try: lst.index(element) # If the element is found, return True return True # If a ValueError is raised, the element is not in the list except ValueError: # Return False in this case return False #Test the function test_list = [1, 6, 3, 5, 3, 4] print(element_exists(test_list, 3)) # prints True print(element_exists(test_list, 7)) # prints False #This code is contributed by Edula Vinay Kumar Reddy>
出力
空間の複雑さ :お(1)。このアプローチでは追加のスペースは必要ありません。
filter() 関数を使用してリストに要素が存在するかどうかを確認します
段階的なアプローチ
- リスト my_list を定義し、element_to_check を設定します。
- filter() 関数を使用して、element_to_check と等しい要素を含む反復子 (filtered_elements) を作成します。
- イテレータ filtered_elements をリストに変換します。
- filter() 関数がイテレータを返すため、この手順が必要です。リストには、element_to_check に等しい要素が含まれます。
- リスト filtered_list が空でないかどうかを確認してください。
- リストが空でない場合は、その要素が元のリストに存在することを意味します。
my_list = [1, 2, 3, 4, 5] element_to_check = 3 # Use filter to create an iterator of elements equal to the target element filtered_elements = filter(lambda x: x == element_to_check, my_list) # Convert the iterator to a list and check if it's not empty if list(filtered_elements): print('Element exists in the list') else: print('Element does not exist in the list')>
出力
Element exists in the list>
時間計算量: O(n)
補助スペースの複雑さ: O(n)