繁体   English   中英

Python连接SET或LIST

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM