Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中从集合列表中筛选重复项?_Python - Fatal编程技术网

如何在python中从集合列表中筛选重复项?

如何在python中从集合列表中筛选重复项?,python,Python,所以我在做一个小项目,我被一段代码卡住了。 代码应过滤列表中的所有重复编号。 这是我的代码: lijst = [{1,2,3,4,4}, {4,5}] def unique(lijst): final_list = [] for nummer in lijst: if nummer not in final_list: final_list.append(nummer) return final_list print(unique(

所以我在做一个小项目,我被一段代码卡住了。 代码应过滤列表中的所有重复编号。 这是我的代码:

lijst = [{1,2,3,4,4}, {4,5}]
def unique(lijst):
    final_list = []
    for nummer in lijst:
        if nummer not in final_list:
            final_list.append(nummer)
    return final_list
print(unique(lijst))
当我打印这张照片时,我得到:

[{1,2,3,4},{4,5}]

但我想得到这个: {1, 2, 3, 4, 5} 如果列表发生变化,该程序也应该工作。 我不知道如何解决这个问题。 有人能帮忙吗? 如果你能解释一下你是如何做到的以及为什么这么做的,那就太好了,因为我是python初学者,所以我可以从中学习。
非常感谢

您可以迭代iterable并对最后一个结果使用set

>>> x = [{1,2,3,4,4}, {4,5}]
>>> {z for y in x for z in y}
set([1, 2, 3, 4, 5])
输出

{1,2,3,4,5}


在这种情况下,使用set.difference仅获取{1,2,3}

我的方法:

lijst = [{1,2,3,4,4},{4,5}]
result = []
sub1 = tuple(lijst[0])
sub2 = tuple(lijst[1])
for i in range(len(sub1)):
    result.append(sub1[i])
for i in range(len(sub2)):
    if sub2[i] not in result:
        result.append(sub2[i])
result = list(result)
print(result)
我的结果是[1,2,3,4,5]
希望这有用。

我应该在我的代码中把它应用到哪里?用集合理解打高尔夫球:{z代表y,x代表z,y}@Jean-franoisfabre或者:@JosseLardinois,你们可以把它作为你们独特函数的主体:注意,{1,2,3,4,4}实际上是{1,2,3,4}。重复项已被过滤掉。lijst是一个包含2个元素的列表,每个元素都是一个集合。这就是为什么在最终列表中有两个元素。你确定这是正确的输入吗?你可能不会得到[{1,2,3,4},{4,5}],而是[[1,2,3,4],[4,5]@Jean-Françoisfare-不,上面的代码在一个包含两个元素的列表上循环,每个元素都是一个集合,它将集合附加到最终的_列表中。因此,您再次得到一个包含2个集合的列表,第一个集合被打印为{1,2,3,4},因为即使重复项出现在文字定义中,也会被删除。
l = [[1,2,3,4,4], [4,5]]

a=[]
for each in l:
    for every in each:
        a.append(every)
l=a
print(set(a))
jst = [{1,2,3,4,4}, {4,5}]
def unique(lijst):
    A=set()
    for i in lijst:
            A=A.union(i)
    return(A)
print list(unique (jst))


[1, 2, 3, 4, 5]
lijst = [{1,2,3,4,4},{4,5}]
result = []
sub1 = tuple(lijst[0])
sub2 = tuple(lijst[1])
for i in range(len(sub1)):
    result.append(sub1[i])
for i in range(len(sub2)):
    if sub2[i] not in result:
        result.append(sub2[i])
result = list(result)
print(result)