如何在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)