我有一个很大的列表
[[1,.., ..],[2,...,...],[5,...,...],[1,...,...]]
我需要删除所有具有相同第一个值的元素。 (只保留一次)
如何最有效地做到这一点?
请您参考如下方法:
保留到目前为止看到的第一个值的集合,并且只保留第一个值不在集合中的子列表。
因为set.add总是返回None,keys.add(sublist[0]) or sublist与是一样的None 或 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
