如果想要根据每个嵌套列表的第一个元素评估重复项,是否有人可以建议一个很好的解决方案来从嵌套列表中删除重复项?
主要列表如下所示:
L = [['14', '65', 76], ['2', '5', 6], ['7', '12', 33], ['14', '22', 46]]
Run Code Online (Sandbox Code Playgroud)
如果在第一个位置存在另一个[k][0]
已经发生相同元素的列表,那么我想删除该列表并得到以下结果:
L = [['14', '65', 76], ['2', '5', 6], ['7', '12', 33]]
Run Code Online (Sandbox Code Playgroud)
你能建议一种算法来实现这个目标吗?
Bri*_*ian 29
您是否关心保留订单/删除哪些副本?如果没有,那么:
dict((x[0], x) for x in L).values()
Run Code Online (Sandbox Code Playgroud)
会做的.如果您想保留订单,并希望保留您找到的第一个订单:
def unique_items(L):
found = set()
for item in L:
if item[0] not in found:
yield item
found.add(item[0])
print list(unique_items(L))
Run Code Online (Sandbox Code Playgroud)