我有很多这样的元组列表:
[(169, 8), (170, 1), (170, 4), (170, 8), (171, 8), (172, 8), (173, 8), (174, 8), (175, 6), (175, 8), (176, 6), (176, 8), (177, 6), (177, 8), (178, 6), (178, 8), (179, 6), (179, 8), (180, 1), (180, 6), (180, 8), (181, 6), (181, 8), (183, 1), (183, 4), (183, 6), (183, 8), (184, 6)..]
我需要的是通过选择最高的第二个值来摆脱第一个值的重复,如下所示:
[(169, 8), (170, 8), (171, 8), (172, 8), (173, 8), (174, 8), (175, 8), (176, 8), (177, 8), (178, 8), (179, 8), (180, 8), (181, 8), (183, 1), (183, 8), (184, 6)..]
8并不总是列表中的最高值。
答案 0 :(得分:1)
以下应该可以解决问题:
l = [(169, 8), (170, 1), (170, 4), (170, 8), (171, 8), (172, 8)]
print dict(sorted(l)).items()
结果:
[(169, 8), (170, 8), (171, 8), (172, 8)]
首先要对列表进行排序,然后根据排序的元组创建字典。字典的关键是第一项。由于排序顺序,最高的第二个值将替换相同键的任何其他值。然后使用items
我们将结果字典再次转换为元组。