2014-11-23 162 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():