for语句(循环计算优先级)*不确定这是否是正确的术语

new*_*hon 1 python loops

prices = {
    "banana": 4,
    "apple": 2,
    "orange": 1.5,
    "pear": 3
} 

stock = {
    "banana": 6,
    "apple": 0,
    "orange": 32,
    "pear": 15
}
total = 0 

for item in prices:
    a=prices[item]*stock[item]
    total=total+a
    print total 
Run Code Online (Sandbox Code Playgroud)

所以这是我的代码,我有意在for语句中写了打印总数,所以它打印出我的计算顺序,数字就像这样48.0 93.0 117.0 117.0,所以在基本计算之后语句的第一个值会产生out是橙色的总和,第二个是梨的总数,第三个是香蕉,最后是苹果

现在我很好奇这个优先计算的原理是什么原因在我看来它以dic_stock中最大的数字开始并以递减的方式计算,我知道这只是一个肤浅的观察,必须有一个理由为什么计算机会这样做

谁能告诉我为什么:)

Roh*_*ain 5

字典不是订购的.因此,获得键值对的顺序并不固定.如果需要在dict上定义插入顺序,则需要使用集合.OrderedDict