>>> x = 'foo'>>> {0: locals().get('x')}{0: 'foo'}>>> {0: locals().get('x' + spam) for spam in ['']}{0: None}What is the reason for this discrepancy in behaviour? 解决方案 Dict comprehensions and generator comprehensions create their own local scope. List comprehensions do not in Python 2.x, but do in Python 3. (Note that your first example is not a dict comprehension. It's just a literal dict that happens to have an expression as the value for the key 0.) 这篇关于dict理解中的Python作用域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 08-22 13:34