为什么“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)
为什么呢?
答
您不能通过字典构造函数使用数字键。这是因为构造函数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}
'1'是不是一个有效的Python标识符 –
'1'在Python中并不是一个有效的关键字参数名称 - 这是一个表达式,而不是一个标识符。 –
[Python:SyntaxError:关键字不能是表达式]的可能重复(http://stackoverflow.com/questions/11633421/python-syntaxerror-keyword-cant-be-an-expression) –