小编典典

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

python

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

清单:

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元素,而这正是我想要的。


阅读 259

收藏
2021-01-20

共1个答案

小编典典

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

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]),而是使用您认为更具可读性的内容。

2021-01-20