我想使用Python关键字dict返回一个字典,每个单词都是给定句子的true。 代码段是:
return dict((word, True) for word in words)
现在,当两个代码都返回相同的词典时会出现歧义:
1
return dict((word, True) for word in words)
2
return dict([(word, True) for word in words])
为什么第二个片段不会返回带有单词列表的dict?
答案 0 :(得分:4)
这两个片段基本上与:
相同return dict.fromkeys(words, True)
这是一个映射,其中键是words
中的项目,值为True。
dict
类也会使用(key, value)
对的迭代,这就是您在这两个片段中创建的内容。
在第一个中,它是一个生成器表达式,因此并非所有项目都是一次创建的,但它们是在迭代时创建的。
第二个是列表压缩,因此创建一个列表以开始,并创建所有项目并将其放入列表中。
在任何一种情况下,dict
都会看到一个可迭代的。