如何让Python的dict函数对变量求值而非当作字面量?
问题解决:让字典键使用变量值而非字面量
你遇到的问题是因为Python中dict()函数的关键字参数语法会把参数名直接当作字符串字面量,不会去解析同名变量。要实现用变量TEST_KEY的值作为字典键,有两种简单的方法:
方法1:使用字典字面量(推荐)
直接用方括号包裹变量作为键,这是Python中创建带变量键字典的标准写法:
TEST_KEY = "test_key" def get_dict(): return {TEST_KEY: "test_value"} print(get_dict()) # 输出: {'test_key': 'test_value'}
方法2:通过解包传递给dict()函数
如果一定要用dict()函数,可以先创建一个包含变量键的字典,再用**解包语法传入:
TEST_KEY = "test_key" def get_dict(): return dict(**{TEST_KEY: "test_value"}) print(get_dict()) # 输出: {'test_key': 'test_value'}
为什么原代码不行?
当你写dict(TEST_KEY="test_value")时,Python会把TEST_KEY这个参数名直接转成字符串"TEST_KEY"作为键,不会去查找你定义的同名变量。这是关键字参数的设计规则——参数名本身就是字面量,无法被解析为变量。
内容的提问来源于stack exchange,提问作者committedandroider
相关产品推荐
相关产品推荐

