我有一个元组列表,如果其第一个项与列表中其他元组的第一个项匹配,则需要删除元组。第三个项目可能相同,也可能不同,因此我不能使用集合(我看过这个问题 - 无论顺序如何在python列表中抓取独特的元组,但这与我的问题不同)。
例如,如果我得到
我使用以下代码获得了所需的输出。
有更好的或更符合Python风格的方法来实现相同的功能吗?最初的回答。
例如,如果我得到
a
:[(0, 13, 'order1'), (14, 27, 'order2'), (14, 27, 'order2.1'),
(0, 13, 'order1'), (28, 41, 'order3')]
我想要的输出是:
最初的回答
[(14, 27, 'order2'), (0, 13, 'order1'), (28, 41, 'order3')]
我使用以下代码获得了所需的输出。
最初的回答
for e, i in enumerate(a):
r = [True if i[0] == k[0] and e != j else False for j, k in enumerate(a)]
if any(r):
a.pop(e)
pprint(a)
有更好的或更符合Python风格的方法来实现相同的功能吗?最初的回答。
(14, 27, 'order2')
和(14, 27, 'order2.1')
,你如何知道要使用哪个第三项,'order2'
还是'order2.1'
? - Joe Patten