Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
>>> x = 'foo' >>> {0: locals().get('x')} {0: 'foo'} >>> {0: locals().get('x' + spam) for spam in ['']} {0: None}
这种行为差异的原因是什么?
字典推导和生成器推导创建自己的本地范围。列表推导在 Python 2.x 中没有,但在 Python 3 中提供。(请注意,您的第一个示例不是 dict 推导。它只是一个文字 dict,恰好有一个表达式作为键 0 的值。)