[英]Python concatenate SET or LIST
我尝试测试两个以从列表中进行设置:
首先,从每个列表创建集合,然后将其并集为结果集,或者创建一个列表,然后返回列表的集合。
无论使用哪种方式,我的结果看起来都是这样吗? 还是我的研究中存在错误逻辑,或者可能是进行这种结合的最佳方法?
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
您的问题在于此功能
def set_from_set(*args):
l= set()
for larg in args:
l.union(set(larg))
return l
.union()
函数返回一个新集合 ,它不会修改您的旧集合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.