从Python中的列表列表中删除重复项

elf*_*go1 11 python list

如果想要根据每个嵌套列表的第一个元素评估重复项,是否有人可以建议一个很好的解决方案来从嵌套列表中删除重复项?

主要列表如下所示:

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)