如何从python中的集合列表中过滤重复项?

时间:2019-03-10 14:51:34

标签: 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,5}]

但是我想得到这个: {1,2,3,4,5} 如果列表更改,该程序也应该可以运行。 我不知道如何解决这个问题。 有人可以帮忙吗? 如果您解释了它的工作方式和原因,那会很好,因为我是python初学者,所以我可以从中学习。 提前非常感谢!

6 个答案:

答案 0 :(得分:1)

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

x = set()
for seq in lijst:
    x |= set(seq)
print(x)

答案 1 :(得分:0)

您可以遍历可迭代对象,并在最后一个结果上使用set

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

答案 2 :(得分:0)

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))

输出

  

{1、2、3、4、5}

答案 3 :(得分:0)

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]

答案 4 :(得分:0)

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

答案 5 :(得分:0)

我的方法:

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] 希望这有用。