Python字典键值访问疑问:为何我的写法无法生效?
问题解析:Python f-string中字典键访问的两种写法差异
你的写法失效的核心原因
你写的print(f"resources{['water']}")里,{['water']}部分只是把字面量列表['water']直接转换成字符串插入到结果里,和resources字典没有任何关联——它既不会去读取resources,也不知道这是个字典键。最终输出的只是字符串拼接后的resources['water'],完全没拿到字典里的实际值。
两种写法的本质差异
错误写法:
f"resources{['water']}"
占位符内是一个独立的列表字面量,作用仅仅是把['water']转成字符串(也就是'['water']')拼到主字符串里,没有执行任何字典访问逻辑。正确写法:
print(f"resources['water']: {resources['water']}")
这里的{resources['water']}是在f-string的占位符中执行了字典索引表达式:Python会先计算resources['water'],取出字典中键为'water'对应的实际值,再把这个值插入到字符串的对应位置。
举个实际例子,假设resources = {'water': 200}:
- 错误写法的输出是:
resources['water'] - 正确写法的输出是:
resources['water']: 200
内容的提问来源于stack exchange,提问作者Ahmad Ali
相关产品推荐
相关产品推荐

