Python dict更改顺序如何获得第一次出现?

2024-04-24 12:49:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试了两个小时,以获取具有特定值的键值对的第一个匹配项。(元组是键,值是整数)。你知道吗

为什么与此相关?字典是按键排序的。你知道吗

我可以pprint()这个dict,我看到第一个出现的就是我想要的-但是迭代dict并使用itemgetter输出第一个出现的结果是错误的元组。你知道吗

可运行代码如下:https://repl.it/repls/WatchfulStridentLight 相关的行是54到86(请注意较大的调试部分)

pprint([k for k,v in allsmall.items() if v>=maxb]) #HERE, the 2nd tuple IS WHAT I WANT, the correct value

这将是我从pprint获得第一次出现的解决方案:

print(max(allsmall.items(), key=operator.itemgetter(1))[0]) #almost minimum 

但是第二次出现了?!你知道吗

这完全打破了秩序:

print(max(allsmall.items(), key=operator.itemgetter(0))[0]) 

预期:可以访问第一个匹配项,因为pprint()正确打印它

实际情况:我得到第二次出现。。。。你知道吗


Tags: thekey字典items整数operatordictmax