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

时间:2013-08-15 08:40:48

标签: 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 

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

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

任何人都可以告诉我为什么:)

1 个答案:

答案 0 :(得分:5)

不订购字典。因此,获得键值对的顺序并不固定。 如果您需要在dict上定义广告订单,则需要使用collections.OrderedDict