Python 字典对象:SyntaxError:表达式不能包含赋值,也许你的意思是“==”?

新手上路,请多包涵

我正在创建一个字典对象,它是在我使用“语句 1”时创建的,但是我在尝试使用与“语句 2”相同的键和值创建字典对象时收到一条错误消息。

声明 1:

 dmap = {0: 'Mon', 1: 'Tue', 2: 'Wed', 3: 'Thu',
        4: 'Fri', 5: 'Sat', 6: 'Sun'}

声明 2:

 dmap = dict(0='Mon', 1='Tue', 2='Wed', 3='Thu',
            4='Fri', 5='Sat', 6='Sun'

错误信息:

     File "<stdin>", line 1
    SyntaxError: expression cannot contain assignment, perhaps you meant "=="?

有人能告诉我,为什么允许我使用语句 1 而不是语句 2 创建带有整数键的字典?

编辑 使用声明 2 的更新版本,我可以使用以下代码创建字典对象:

 dmap = dict(day_0='Mon', day_1='Tue', day_2='Wed',
            day_3='Thu', day_4='Fri', day_5='Sat', day_6='Sun')

原文由 Deepak.K 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3k
2 个回答

dict 是接受关键字参数的常规可调用对象。 根据 Python 语法,关键字参数的形式为 identifier '=' expression标识符不能以数字开头,数字文字除外。

keyword_item ::= identifier "=" expression

那个 dict 默认情况下会创建一个接受任意键的字典,不会改变调用的语法。

原文由 MisterMiyagi 发布,翻译遵循 CC BY-SA 4.0 许可协议

由于字典中缺少逗号,我遇到了这个问题:

 item = {
    'a': 1,
    'b': 2
    'c': 3,
    'd': 4
}

注意 2 和 ‘c’ 之间缺少的逗号

原文由 James Shapiro 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题