前者のすべての要素が後者の要素でもある場合、リストは別のリストのサブセットです。たとえば、 [1、2]
は[1、2、3]
のサブセットですが、 [1,4]
はそうではありません。
set.issubset()
を使用して、リストが別のリストのサブセットであるかどうかを確認する set(list)を使用して、リストをセットに変換します。 set1.issubset(set2)
を呼び出して、set1がset2のサブセットであるかどうかを示すブール値を返します。
print(list1)OUTPUT [1、2] print(list2)OUTPUT [ 1、2、3] set1 = set(list1)リストをセットに変換しますset2 = set(list2)is_subset = set1.issubset(set2)set1がset2にあるかどうかを確認しますprint(is_subset)OUTPUT True
Pythonは、リストが別のリストのサブセットであるかどうかをチェックします
1つのリストがリストの単なる拡張であるかどうか、つまり1つのリストのスーパーセットであるかどうかをチェックする問題が発生することがあります。この種の問題は、競技プログラミングで非常に人気があります。それの速記を持っていることは原因を助けます。この特定のタスクを達成するためのさまざまな方法について説明しましょう。
あるリストが別のリストのサブセットであるかどうかを確認するall()を使用する
all()を使用してコンテナのすべての要素を1行でチェックします。あるリストのすべての要素が他のリストに存在するかどうかをチェックします。
#リストが他のサブセットであるかどうかを確認するための#Python3コード#all()を使用#リストの初期化test_list = [9、4、 5、8、10] sub_list = [10、5、4]#元のリストを印刷するprint( "元のリスト:" + str(test_list))print( "元のサブリスト:" + str(sub_list))#using all( )to#リストフラグのサブセットをチェック= 0 if(all(x in test_list for x in sub_list)):flag = 1#結果を出力if(flag):print( "はい、リストは他のサブセットです。")else: print( "いいえ、リストは他のサブセットではありません。")
出力:
元のリスト:[9、4、5、8、10]元のサブリスト:[ 10、5、4]はい、リストは他のサブセットです。set.issubset()を使用して、あるリストが別のリストのサブセットであるかどうかを確認します。
サブリストを検索するために最も一般的に使用され、推奨される方法。この関数は、あるリストが別のリストのサブセットであるかどうかをチェックする特定のタスクを実行するようにカスタマイズされています。
#リストが他のリストのサブセットであるかどうかをチェックする#Python3コード#issubset()を使用して#初期化list test_list = [9、4、5、8、10] sub_list = [10、5]#元のリストを印刷するprint( "元のリスト:" + str(test_list))print( "元のサブリスト:" + str(sub_list ))#issubset()を使用して#リストのサブセットをチェックflag = 0 if(set(sub_list).issubset(set(test_list))):flag = 1#結果を出力if(flag):print( "はい、リストはotherのサブセット。")else:print("いいえ、リストはotherのサブセットではありません。 ")
出力:
元のリスト:[9、4、5、8 10]元のサブリスト:[10、5]はい、リストは他のサブセットです。
反復とカウンターを使用して1つのリストが別のリストのサブセットであるかどうかを確認する
両方のリストの項目数を使用して、2番目のリストが最初のリストのサブセットであることを確認します。< / p>
#リストが他のサブセットであるかどうかを確認するためのPython3コード#コレクションからのインポートimport Counter def checkInFirst(a、b):#getting count count_a = Counter(a)count_b = Counter(b)# count_bのキーの2番目のリストに要素が存在するかどうかを確認します:count_aにキーがない場合:count_b [key]> count_b [key]の場合はFalseを返します:Falseを返しますtrue#リストを初期化しますa = [1、2,4,5] b = [1、2,3]#呼び出し関数res = checkInFirst(a、b)#印刷リストprint( "元のリスト:" + str(a))print( "元のサブリスト:" + str(b))if res == True:print( "はい、リストは他のサブセットです。")else:print( "いいえ、リストは他のサブセットではありません。")#Paras Jainによって追加されました(すべて可能)
出力:
元のリスト:[1、2、4、5]元のサブリスト:[1、2、3]いいえ、リストは他のサブセットではありません。
set.intersection()を使用して1つのリストが別のリストのサブセットであるかどうかを確認する
セットを処理する別の方法は、両方のリストの共通部分が私たちのサブリストであるかどうかを確認することです。チェック中。これにより、一方のリストがもう一方のサブセットであることを確認できます。
#リストが他のサブセットであるかどうかを確認するための#Python3コード#intersection()を使用して#リストを初期化test_list = [9、4、5、 8、10] sub_list = [10、5]#元のリストを印刷するprint( "元のリスト:" + str(test_list))print( "元のサブリスト:" + str(sub_list))#intersection()を使用して#チェックするリストのサブセットflag=0 if((set(sub_list)&set(test_list))== set(sub_list)):flag = 1#結果を出力if(flag):print( "はい、リストは他のサブセットです。" )else:print( "いいえ、リストは他のサブセットではありません。")
出力:
元のリスト:[9、4、5、8、10]元のサブリスト:[10、5]はい、リストは他のサブセットです。
あるリストが別のPythonのサブセットであるかどうかを確認するにはどうすればよいですか?
set.issubset
を使用します 例:
a = { 1 、 2 } b = { 1 、 2 、 3 } a.issubset(b)#True
a = { 1 、 2 、 4 } b = { 1 、 2 、 3 } a.issubset(b)# False
Pythonがこれに提供するパフォーマンス関数は
subset"rel = "noreferrer"> set.issubset
。ただし、それがあなたの質問に対する答えであるかどうかを不明確にするいくつかの制限があります。リストには複数のアイテムが含まれる場合があり、特定の順序があります。セットはしません。さらに、セットは
ハッシュ可能なオブジェクトでのみ機能します。 サブセットまたはサブシーケンスについて質問していますか(つまり、文字列検索アルゴリズムが必要になります)?どちらのリストも多くのテストで同じですか?リストに含まれるデータ型は何ですか?さらに言えば、リストである必要がありますか?
他の投稿
dictとlistを交差させると、タイプが明確になり、セットのような機能のために辞書のキービューを使用することが推奨されました。その場合、辞書キーはセットのように動作するため、機能することが知られていました(Pythonでセットを作成する前は、辞書を使用していました)。この問題が3時間でどのように具体的になったのか不思議に思います。