2014-11-23 161 views
0

下面是一個簡單的嵌套詞典:迭代器在Python字典

wordFrequency = {'bit':{1:3,2:4,3:19,4:0},'red':{1:0,2:0,3:15,4:0},'dog':{1:3,2:0,3:4,4:5}} 

我試圖找出什麼之間這兩段代碼做差價:

for word, innerDictionary in wordFrequency.iteritems(): 
    for fileNum, appearances in innerDictionary.iteritmes(): 

for fileNum, appearances in wordFrequency.get(word, {}).iteritems(): 

我知道第一個允許我將內部字典的鍵和值分配到fileNum和出現分別爲。

但是,我不清楚至於第二段代碼是否也一樣?

+0

第一個版本迭代wordFrequency'的'所有的值,而只有在一個值的值(後者迭代'word') – alfasin 2014-11-23 18:26:57

回答

0

以下命令:

for fileNum, appearances in wordFrequency.get(word, {}).iteritems(): 

會給你(的嵌套的字典)只有一個值,但如果你想有一個像你前面的代碼相同的效果,由於get()的功能,第一個參數必須是你需要拿到鑰匙,並把這些代碼在一個循環字典的關鍵:

for word in wordFrequency.keys() : 
    for fileNum, appearances in wordFrequency.get(word, {}).iteritems():