我只在前两个元素相同的情况下才尝试从嵌套列表中删除重复项,而忽略了第三个元素…
清单:
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元素,而这正是我想要的。
如果顺序无关紧要,则可以使用相同的方法,但是将第一和第二个元素的元组用作键:
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]),而是使用您认为更具可读性的内容。
(x[0], x[1])
tuple(x[:2])