我試過兩種方法來更新python中的字典:d.update(dict(a = 1,b = 2))和d.update(dict('a'= 1,'b'= 2)之間有什麼區別)
d.update(dict(a=1, b=2))
這一個很好。d.update(dict('a'=1, 'b'=2))
但是,這種方式給了我一個SyntaxError: keyword can't be an expression
第二條語句有什麼問題?爲什麼它必須是a
而不是'a'
? 謝謝。
我試過兩種方法來更新python中的字典:d.update(dict(a = 1,b = 2))和d.update(dict('a'= 1,'b'= 2)之間有什麼區別)
d.update(dict(a=1, b=2))
這一個很好。d.update(dict('a'=1, 'b'=2))
但是,這種方式給了我一個 SyntaxError: keyword can't be an expression
第二條語句有什麼問題?爲什麼它必須是a
而不是'a'
? 謝謝。函數調用中的參數必須是標識符,而不是字符串常量。
出於同樣的原因,你可以不寫:
"a" = 1
你也不能調用一個函數
dict("a"=5)
而是寫:
a = 5
dict(a=5)
如果您需要從字符串常量創建字典,使用字面語法:
{"a": 5, "b": 17}
如果你需要使用的變量名,調用函數的字符串,語法是有點怪:
func(**{"a": 5}) # more or less equivalent to func(a=5)
但要注意的是,.update
函數可以調用這種方式開始:
d.update(a=1, b=2)
A 參數必須是標識符。 a
是一個標識符。 'a'
不是,它是一個字符串文字(它是表達式的一種形式)。
在Python中,您可以使用兩個星號來傳遞一個名爲的名稱爲參數的字典。所以:
d.update(**{'a': 1, 'b': 2})
會工作。但對於這樣的字典,這當然是無用的。但是,您可以在運行時構造字典d2
,然後調用somefunc(**d2)
以d2
的鍵作爲參數名稱,並將相應的值作爲與這些參數名稱關聯的值調用函數。
...但用字典這樣做會是單一的毫無意義。 –
@DanielRoseman:當然。我爲一個更有用的用例添加了一個簡短的描述。 –