我有很多

[[1,.., ..],[2,...,...],[5,...,...],[1,...,...]]


我需要删除所有具有相同第一个值的元素。 (只保留一次)

如何最有效地做到这一点?

最佳答案

保留迄今为止看到的第一个值的set,并且仅在第一个值不在集合中时保留子列表。

由于set.add始终返回None,因此keys.add(sublist[0]) or sublistNone 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/

10-09 06:58