仅当前 2 个元素相同时,我才尝试从嵌套列表中删除重复项,而忽略第三个...
列表:
L = [['el1','el2','value1'], ['el3','el4','value2'], ['el1','el2','value2'], ['el1','el5','value3']]
Run Code Online (Sandbox Code Playgroud)
会返回:
L = [['el3','el4','value2'], ['el1','el2','value2'], ['el1','el5','value3']]
Run Code Online (Sandbox Code Playgroud)
dict((x[0], x) for x in L).values()
Run Code Online (Sandbox Code Playgroud)
但这仅适用于第一个元素而不适用于前两个元素,但这正是我想要的。
如果顺序无关紧要,您可以使用相同的方法,但使用第一个和第二个元素的元组作为键:
{(x[0], x[1]): x for x in L}.values()
Run Code Online (Sandbox Code Playgroud)
或者在 2.7 之前的 Python 版本上:
dict(((x[0], x[1]), x) for x in L).values()
Run Code Online (Sandbox Code Playgroud)
(x[0], x[1])不要使用可以使用的,而是tuple(x[:2])使用您认为更具可读性的那个。