Python连接集合或列表

2024-10-06 12:27:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着从列表中选出两个:

首先从每个列表中创建集,然后合并到结果集 或者创建一个列表并返回列表集。在

我的结果看起来不管用哪种方法,是吗?或者我在研究中有错误的逻辑,或者可能是这种结合的最佳方式?在

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


Tags: infroml1列表fortimedefargs
1条回答
网友
1楼 · 发布于 2024-10-06 12:27:15

你的问题在于这个函数

def set_from_set(*args):
     l= set()
     for larg in args:
         l.union(set(larg))
     return l

.union()函数returns a new set,它不会就地修改旧的集合。在

相关问题 更多 >