2017-05-16 29 views
-2

不知道在哪裏的問題是,我試圖用多個變量的名字該字典具有相同的錯誤:的Python:語法錯誤:關鍵字不能表達

>>> hostname=dict('172.16.1.75'='N-Switch', '172.16.1.76' = 'W-Switch', '172.16.1.77' = 'E-Switch') 
SyntaxError: keyword can't be an expression 

我試圖創建一個字典通過調用其IP地址作爲密鑰來更改資產主機名的腳本。任何想法是什麼問題?

+0

要使用'dict'函數,必須按照函數參數傳遞鍵,這意味着它們必須是有效的唯一符號 –

+0

您只能使用有效的Python標識符作爲關鍵字參數(包括'dict()'callable) 。改用'{...}'字典顯示。 –

+0

另請參閱:http://stackoverflow.com/questions/10390606/python-syntaxerror-with-dict1-but-1-works –

回答

2

我不知道你使用的有效語法,請嘗試:

hostname={'172.16.1.75':'N-Switch', '172.16.1.76' : 'W-Switch', '172.16.1.77' : 'E-Switch'} 
0

由於錯誤說,參數不能是字符串。該解決方案是創建一個使用{}構造的字典:

hostname={'172.16.1.75':'N-Switch', '172.16.1.76' : 'W-Switch', '172.16.1.77' : 'E-Switch'} 

如果您希望使用dict構造函數,您需要提供有效的參數鍵(不是字符串)。

3

爲initiallizing的字典通常的格式是這樣

hostname=dict([('172.16.1.75','N-Switch'), ('172.16.1.76','W-Switch'), ('172.16.1.77', 'E-Switch')]) 

或者更簡單地由普約爾Mitjans在他的回答(這似乎給已經刪除所以這裏將是它的要點爲造福< 10K用戶)

hostname={'172.16.1.75':'N-Switch', '172.16.1.76' : 'W-Switch', '172.16.1.77' : 'E-Switch'} 

這其實是在使用Python中字典更常見的方式。內置的dict僅在使用動態列表時使用。

也可能是字典理解。

+0

我想你錯過了元組 –

+0

的父容器是的,謝謝指出。 – e4c5

相關問題