我有一个如下所示的列表:
[(1, 0.3), (3, 0.2), (3, 0.15), (1, 0.07), (1, 0.02), (2, 0.01)]
我想根据每个元组中的第一项保留此列表中首次发现的重复项:
[(1, 0.3), (3, 0.2), (2, 0.01)]
有没有一种有效的方法来做到这一点?
如果结果列表的顺序无关紧要,只要它包含每个元组的原始列表中的第一个条目:首先反转列表,然后传递它dict
以删除重复项并保留每个键的最后一个条目(第一个在原始列表,因为它被颠倒了):
>>> items = [(1, 0.3), (3, 0.2), (3, 0.15), (1, 0.07), (1, 0.02), (2, 0.01)] >>> list(dict(reversed(items)).items()) [(1, 0.3), (2, 0.01), (3, 0.2)]
如果结果列表的顺序很重要,请参阅Padraic的答案:)