Python字典改变了排序 - 如何获得第一次出现?

问题描述 投票:0回答:1

我正在尝试2个小时来获得具有特定值的键值对的第一次出现。 (元组是键,值是整数)。

为什么这有关系? dict按键排序。

我可以打印()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()正确打印它

实际:我第二次出现......

python loops sorting dictionary
1个回答
2
投票

使用OrderedDict。它保留了插入顺序,因此您应该第一次出现。

© www.soinside.com 2019 - 2024. All rights reserved.