2017-04-11 247 views
-1

我只是寫了下面的代碼:爲什麼「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://stackoverflow.com/questions/11633421/python-syntaxerror-keyword-cant-be-an-expression) –

回答

2

您不能通過字典構造函數使用數字鍵。這是因爲構造函數dict()使用關鍵字參數來表示鍵值對。關鍵字必須是一個有效的Python標識符,因此這裏不允許使用數值。

,但你仍然可以做這樣的:

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

謝謝......... – cong

4

該語法提供了鍵是有效的Python標識符。

對於類似數字的鍵,你不能這樣做。替代方案:

>>> test={'1':1,'2':2,'3':3} 
>>> test 
{'1': 1, '2': 2, '3': 3} 
相關問題