我有一个元组列表,可以理解为键值对,其中一个键可以出现多次,可能有不同的值,例如
[(2,8),(5,10),(2,5),(3,4),(5,50)]
我现在想获得每个键值最高的元组列表,即
[(2,8),(3,4),(5,50)]
键的顺序无关紧要。
我如何以有效的方式做到这一点?
请您参考如下方法:
对它们进行排序,然后转换为字典并再次从中取出项目:
l = [(2,8),(5,10),(2,5),(3,4),(5,50)]
list(dict(sorted(l)).items()) #python3, if python2 list cast is not needed
[(2, 8), (3, 4), (5, 50)]
这个想法是,当转换为过滤每个键的最低值的字典时,键值对将按升序更新,然后您只需将其作为元组。
