我试着从列表中选出两个:
首先从每个列表中创建集,然后合并到结果集 或者创建一个列表并返回列表集。在
我的结果看起来不管用哪种方法,是吗?或者我在研究中有错误的逻辑,或者可能是这种结合的最佳方式?在
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
你的问题在于这个函数
.union()
函数returns a new set,它不会就地修改旧的集合。在相关问题 更多 >
编程相关推荐