首页 > 解决方案 > Python Dictionary Object: SyntaxError: expression cannot contain assignment,也许你的意思是“==”?

问题描述

我正在创建一个字典对象,它是在我使用“语句 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')

标签: pythonpython-3.x

解决方案


您的困惑可能来自您可以编写以下内容的事实:

d = dict(spam=1, eggs=2)

这使用了一种称为“关键字参数”的功能,并且仅在键是字符串时才有效。因此,您的示例不起作用,因为键是整数。


推荐阅读