2014-12-27 192 views
1

此代碼完成它應該做的事情。我的掛斷是理解字典中的關鍵是什麼以及價值是什麼。我是(〜仍然)確定它是 - dict = {key:value} - 但是在運行下面的代碼時,它似乎是相反的。有人能讓我的思想休息,並澄清我失蹤的東西。我不想在沒有徹底理解的情況下繼續前進。謝謝。Python字典中的鍵/值混淆

prices = { 
"banana" : 4, 
"apple" : 2, 
"orange" : 1.5, 
"pear" : 3, 
} 
stock = { 
"banana" : 6, 
"apple" : 0, 
"orange" : 32, 
"pear" : 15, 
} 

total = 0 
for key in prices: 
    print key 
    print "price: %s" % prices[key] 
    print "stock: %s" % stock[key] 
    total = total + prices[key]*stock[key] 
print 

print total 

輸出:

orange 
price: 1.5 
stock: 32 

pear 
price: 3 
stock: 15 

banana 
price: 4 
stock: 6 

apple 
price: 2 
stock: 0 

117.0 
None 

回答

1

你的理解是正確的,它是{鍵:值}和你的代碼備份這件事。

for key in prices: # iterates through the keys of prices ["orange", "apple", "pear", "banana"] (though no ordering is guaranteed) 
    print key # prints "orange" 

    print "price: %s" % prices[key] # prints prices["orange"] (1.5) 
    # which means it prints the value of the prices dict, orange key. 

    print "stock: %s" % stock[key] # prints stock["orange"] (32) 
    #which means it prints the value of the stock dict, orange key. 

這是做你應該期望它做的。你的困惑在哪裏(例如,它看起來與你所描述的相反)?

+0

對,它正是我想要的。通過試驗和錯誤,我得到了代碼工作,但我想更好地瞭解它的工作原理。 謝謝你的幫助,非常感謝。 –

0

將字典想象成城市街道。鍵是地址,值是特定地址處的值。

from pprint import pprint 
first_street = { 
    100: 'some house', 
    101: 'some other house' 
} 
pprint(first_street) 

地址不必須是數字,也可以是任意不可變的數據類型,整型,字符串,元組等