私は2つのリストから設定を取得するためにテストしてみてください。PythonのCONCATENATEのSETまたはLIST
最初に各リストから を設定したり、1つのリストと戻りリストのセットを作成生じるように設定し、組合作成します。
私の結果は、どちらの方法で使用しても問題ありません。あるいは私の研究でエラー論理がある、あるいはそのような組合にとって最良の方法が存在するかもしれませんか?
import time
def set_from_set(*args):
l = set()
return set().union(*args)
def set_from_list(*args):
l = []
for larg in args:
l += larg
return set(l)
l1 = [x for x in range(1000000)]
l2 = [x for x in range(1000000)]
l3 = [x for x in range(1000000)]
dl1, dl2 = 0, 0
for x in range(100):
start = time.time()
set_from_list(l1, l2, l3)
dl1 += time.time() - start
for x in range(100):
start = time.time()
set_from_set(l1, l2, l3)
dl2 += time.time() - start
print(dl1, dl2)
結果:
19.815733194351196 16.40732741355896
あなたの 'set_from_set'は実際にあなたが望む共用体を構築していません。それはちょうど中間セットの束を構築してそれらを投げ捨て、最初の行で構築した空のセットを返します。 – user2357112
'set()。union(l1、l2、l3)'だけではないのはなぜですか? – user2357112
@ user2357112本当に私はどれくらいのリストを持っているのか分かりません。 –