我尝试了两个小时,以获取具有特定值的键值对的第一个匹配项。(元组是键,值是整数)。你知道吗
为什么与此相关?字典是按键排序的。你知道吗
我可以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()正确打印它
实际情况:我得到第二次出现。。。。你知道吗
使用
OrderedDict
。它保留插入顺序,因此您应该获得第一个引用。你知道吗相关问题 更多 >
编程相关推荐