これはやり方に関する質問ではなく、より効率的なやり方に関する質問です。私は2つのリストを持っています。これは、subListのすべての要素といくつかの要素を含むsuperListです。例えば、以下のリストを取ることができます:リストの位置をPythonの別のリストの中で確認する最も効率的な方法
a = [0,1,2,3,4,5,6,7,8,9] # a is my superList
b = [2,3,5,7] # b is my subList
私はのためのリストを得た方法で、中で存在するBの要素をチェックして、同様にお答えしたい:
[0, 0, 1, 1, 0, 1, 0, 1, 0, 0]
私はこのコードを持っていますここでは短いリストと少量のobサブリストでうまくいくが、データサイズが増え始めると効率が悪くなる。どのソリューションが以下のソリューションよりも効率的でしょうか。 longListの中でshortListを大量にチェックするためにこのコードを実行したいと思います。これは、状況のためにネストしたものです。
def isInList(longList, shortList):
indexList = []
for i in range(len(longList)):
if longList[i] in shortList:
indexList.append(1)
else:
indexList.append(0)
return indexList
O(nm)のnはのサイズであり、mはBのサイズでパフォーマンスがあります。ショートリストを 'set'にすると、O(n)の解を得ることができます。 –
構文的には、longListで' for i:shortList: 'iの場合はshortList:'などです。 – ryugie
リスト内包はどうですか? –