在Python字典的键中使用连字符

时间:2019-02-20 14:15:37

标签: python python-3.x

我必须使用python dict在密钥中使用连字符。但是没有人能告诉我如何解决此问题

dict1 = dict(with_underscore = "working")
print(dict1)
dict2 = dict(with-hyphen = "Not working")
print(dict2)

错误:

dict2 = dict(with-hyphen = "Not working")
                ^
   SyntaxError: invalid syntax

2 个答案:

答案 0 :(得分:0)

带连字符的键很好;这并不意味着所有键/值对都可以由关键字参数表示,因为它们仅限于有效标识符。您必须使用其他形式之一,例如,

dict2a = dict([("with-hyphen", "Not working")])
dict2b = {"with-hyphen": "Not working"}
dict2c = dict(**{"with-hyphen": "Not working"})

(最后一个有点愚蠢,但是证明了可以在不显式使用关键字参数语法的情况下传递现有字典的键/值对。)

答案 1 :(得分:0)

问题不是,键不能带有连字符。由于它们只是字符串,因此可以。他们的问题是连字符对应于减法运算符。因此,python尝试评估表达式with-hyphen。这是一个问题,因为赋值的左边不能是表达式(也是出于其他原因)。

只需使用常规的mydict = {'key-with-hyphen': 'value'}