我有很多
[[1,.., ..],[2,...,...],[5,...,...],[1,...,...]]
我需要删除所有具有相同第一个值的元素。 (只保留一次)
如何最有效地做到这一点?
最佳答案
保留迄今为止看到的第一个值的set
,并且仅在第一个值不在集合中时保留子列表。
由于set.add
始终返回None
,因此keys.add(sublist[0]) or sublist
与None or sublist
相同,而sublist
相同,因此它不会影响保留在列表中的内容,同时允许您将值添加到列表中。在列表理解中设置。
keys = set()
biglist = [keys.add(sublist[0]) or sublist
for sublist in biglist
if sublist[0] not in keys]
del keys # if you don't need it any more
关于python - 如何从Python的未排序列表中删除部分重复项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9816993/