为什么;dict(Runoob=1,Google=2,淘宝=3)";将在;dict(1=1,2=2,3=3)“;不是用python吗?

为什么;dict(Runoob=1,Google=2,淘宝=3)";将在;dict(1=1,2=2,3=3)“;不是用python吗?,python,dictionary,Python,Dictionary,我只需编写以下代码: test=dict(1=1, 2=2, 3=3) 但出现以下编译错误: 测试=dict(1=1,2=2,3=3) ^SyntaxError:关键字不能是表达式 这样的代码将成功编译: test=dict(Runoob=1, Google=2, Taobao=3) 为什么?如果键是有效的python标识符,则此语法有效 对于数字键,您不能这样做。备选方案: >>> test={'1':1,'2':2,'3':3} >>> test {'

我只需编写以下代码:

test=dict(1=1, 2=2, 3=3)
但出现以下编译错误:

测试=dict(1=1,2=2,3=3) ^SyntaxError:关键字不能是表达式

这样的代码将成功编译:

test=dict(Runoob=1, Google=2, Taobao=3)

为什么?

如果键是有效的python标识符,则此语法有效

对于数字键,您不能这样做。备选方案:

>>> test={'1':1,'2':2,'3':3}
>>> test
{'1': 1, '2': 2, '3': 3}

不能通过字典构造函数使用数字键。这是因为构造函数
dict()
使用关键字参数来表示键值对。关键字必须是有效的python标识符,因此此处不允许使用数值

但你仍然可以这样做:

a = {1: 1, 2: 2, 3: 3}

1
不是一个有效的python标识符
1
在python中不是一个有效的关键字参数名称-它是一个表达式,而不是一个标识符。可能是重复的。感谢您提供的所有提示。