基于前两个元素从嵌套列表中删除重复项

发布于 2021-01-29 14:10:52

我只在前两个元素相同的情况下才尝试从嵌套列表中删除重复项,而忽略了第三个元素…

清单:

L = [['el1','el2','value1'], ['el3','el4','value2'], ['el1','el2','value2'], ['el1','el5','value3']]

将返回:

L = [['el3','el4','value2'], ['el1','el2','value2'], ['el1','el5','value3']]

我在这里找到了一种类似的简单方法:

dict((x[0], x) for x in L).values()

但这仅适用于第一个元素而不适用于第一个2元素,而这正是我想要的。

关注者
0
被浏览
128
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果顺序无关紧要,则可以使用相同的方法,但是将第一和第二个元素的元组用作键:

    dict(((x[0], x[1]), x) for x in L).values()
    

    或在Python 2.7及更高版本上:

    {(x[0], x[1]): x for x in L}.values()
    

    而不是(x[0], x[1])您可以使用tuple(x[:2]),而是使用您认为更具可读性的内容。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看