不知道在哪裏的問題是,我試圖用多個變量的名字該字典具有相同的錯誤:的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地址作爲密鑰來更改資產主機名的腳本。任何想法是什麼問題?
不知道在哪裏的問題是,我試圖用多個變量的名字該字典具有相同的錯誤:的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地址作爲密鑰來更改資產主機名的腳本。任何想法是什麼問題?
我不知道你使用的有效語法,請嘗試:
hostname={'172.16.1.75':'N-Switch', '172.16.1.76' : 'W-Switch', '172.16.1.77' : 'E-Switch'}
由於錯誤說,參數不能是字符串。該解決方案是創建一個使用{}
構造的字典:
hostname={'172.16.1.75':'N-Switch', '172.16.1.76' : 'W-Switch', '172.16.1.77' : 'E-Switch'}
如果您希望使用dict
構造函數,您需要提供有效的參數鍵(不是字符串)。
爲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
僅在使用動態列表時使用。
也可能是字典理解。
我想你錯過了元組 –
的父容器是的,謝謝指出。 – e4c5
要使用'dict'函數,必須按照函數參數傳遞鍵,這意味着它們必須是有效的唯一符號 –
您只能使用有效的Python標識符作爲關鍵字參數(包括'dict()'callable) 。改用'{...}'字典顯示。 –
另請參閱:http://stackoverflow.com/questions/10390606/python-syntaxerror-with-dict1-but-1-works –