为什么“dict(Runoob = 1,Google = 2,Taobao = 3)”会在“dict(1 = 1,2 = 2,3 = 3)”的时候编译而不是在python中?

问题描述:

我只是写了下面的代码:为什么“dict(Runoob = 1,Google = 2,Taobao = 3)”会在“dict(1 = 1,2 = 2,3 = 3)”的时候编译而不是在python中?

test=dict(1=1, 2=2, 3=3) 

,但得到以下编译错误:

test=dict(1=1, 2=2, 3=3) ^SyntaxError: keyword can't be an expression

这样的代码将成功编译:

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

为什么呢?

+1

'1'是不是一个有效的Python标识符 –

+1

'1'在Python中并不是一个有效的关键字参数名称 - 这是一个表达式,而不是一个标识符。 –

+2

[Python:SyntaxError:关键字不能是表达式]的可能重复(http://*.com/questions/11633421/python-syntaxerror-keyword-cant-be-an-expression) –

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

,但你仍然可以做这样的:

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

谢谢......... – cong

该语法提供了键是有效的Python标识符。

对于类似数字的键,你不能这样做。替代方案:

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