【问题标题】:Use Hyphen in key in Python dict在 Python dict 的键中使用连字符
【发布时间】:2019-02-20 14:15:36
【问题描述】:

我必须在使用 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

【问题讨论】:

标签: python python-3.x


【解决方案1】:

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

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

【讨论】:

  • 这与您呈现它的方式一样,但是当我尝试使用“dict(...)”语法构建相同的东西时,无论我如何应用分隔符,它都会中断。也许还有另一组有效的分隔符?谢谢!
  • 同样的问题。在dict(...) 语法中,= 左侧的参数必须是有效的python 标识符。由于连字符不是有效标识符的一部分,因此您只能使用下划线。
【解决方案2】:

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

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

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

【讨论】:

  • d1= dict(("with-hyphen", "Not working")) Traceback(最近一次调用最后):文件“”,第 1 行,在 ValueError: dictionary更新序列元素#0 的长度为 11; 2 是必需的
  • 糟糕,需要一个可迭代的元组,而不是单个裸元组。固定。
猜你喜欢
  • 2016-02-29
  • 2021-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-11
  • 2018-10-31
  • 1970-01-01
相关资源
最近更新 更多