消除列表的重复(Python)

Noo*_*der 3 python list duplicate-removal

我有一个列表列表,需要删除所有具有相同第三元素的列表,并保存1.

例如:

x=[[1,2,3],[1,3,3],[5,6,3],[2,4,6],[8,5,9],[10,5,9]]
Run Code Online (Sandbox Code Playgroud)

可以变成:

x=[[1,2,3],[2,4,6],[8,5,9]]
Run Code Online (Sandbox Code Playgroud)

我试过一个解决方案,使用lambda消除所有具有相同第二个索引的列表,但我不知道如何保存每个元素之一,如set()呢 - 我得到:

x=[[2,4,6]]
Run Code Online (Sandbox Code Playgroud)

Ray*_*ger 8

Python集应该仍然适合你:

>>> seen = set()
>>> result = []
>>> for s in x:
    e = s[2]
    if e not in seen:
        result.append(s)
        seen.add(e)


>>> result
[[1, 2, 3], [2, 4, 6], [8, 5, 9]]
Run Code Online (Sandbox Code Playgroud)

  • 呸与雷蒙德在比赛中甚至不公平:) (3认同)