我有一个很大的清单
[[1,.., ..],[2,...,...],[5,...,...],[1,...,...]]
Run Code Online (Sandbox Code Playgroud)
我需要删除所有具有相同第一个值的元素。(只保留一次)
怎么做最有效率?
保留set迄今为止看到的第一个值,并且只保留子列表,如果它们的第一个值不在集合中。
因为set.add总是返回None,keys.add(sublist[0]) or sublist与None or sublistwhich 与 相同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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
749 次 |
| 最近记录: |