我的数据集包含列表和列表列表。因此,我需要从列表或列表列表中获取唯一的对象,但找不到任何成功。输入数据集如下:
[[1、2、39],[1、2、39],[3],[[3],[4、14、63、65],[66、68、82、94]],[[5 ,8、31、34],[36、37、42、44],[55]],[6、91],[[7、35、60、71],[73、83、95、98]] ,[[5、8、31、34],[36、37、42、44],[55],[9、72],[[10、22、30、32],[38、51、56] ,87],[89,92]],[11],[12],[13,90],[[4,14,63,65],[66,68,82,94]]
需要的输出:
[[1、2、39],[3],[4、14、63、65],[66、68、82、94],[5、8、31、34],[36、37、42, 44],[55],[6、91],[7、35、60、71],[73、83、95、98],[9、72],[10、22、30、32],[ 38、51、56、87],[89、92],[11],[12],[13、90],[66、68、82、94]]
abc=[]
for x in pool:
if x not in abc:
abc.append(x)
我不明白如何选择包含列表和列表列表的列表的不同对象。任何帮助将不胜感激。
我已经咨询了多个来源,但没有任何解决方法可以解决我的问题。它们很少如下:
https://www.geeksforgeeks.org/python-get-unique-values-list/
您可以使用生成器将列表弄平,然后在生成的值上循环并添加到结果(如果尚未看到)。就像是:
def flatten(l):
for item in l:
if isinstance(item[0], list):
yield from flatten(item)
else:
yield item
seen = set()
unique = []
for l in flatten(l):
if tuple(l) in seen:
continue
seen.add(tuple(l))
unique.append(l)
print(unique)
结果
[[1, 2, 39],
[3],
[4, 14, 63, 65],
[66, 68, 82, 94],
[5, 8, 31, 34],
[36, 37, 42, 44],
[55],
[6, 91],
[7, 35, 60, 71],
[73, 83, 95, 98],
[9, 72],
[10, 22, 30, 32],
[38, 51, 56, 87],
[89, 92],
[11],
[12],
[13, 90]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句