Python 什么';d.update(dict(a=1,b=2))和d.update(dict(';a';=1,';b';=2))之间的区别是什么
我尝试了两种用python更新词典的方法:Python 什么';d.update(dict(a=1,b=2))和d.update(dict(';a';=1,';b';=2))之间的区别是什么,python,dictionary,Python,Dictionary,我尝试了两种用python更新词典的方法: d.update(dict(a=1,b=2)) 这个很好用 d.update(dict('a'=1,'b'=2)) 但是,这条路给了我一个机会 SyntaxError:关键字不能是表达式 第二句话怎么了?为什么它必须是a而不是'a'? 多谢各位 函数调用中的参数必须是标识符,而不是字符串常量 出于同样的原因,你不能写: "a" = 1 您也不能调用函数 dict("a"=5) 改为写: a = 5 dict(a=5) 如果需要从字符串常量创建字典
d.update(dict(a=1,b=2))
这个很好用d.update(dict('a'=1,'b'=2))
但是,这条路给了我一个机会
SyntaxError:关键字不能是表达式
第二句话怎么了?为什么它必须是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" = 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'不是,它是一个字符串文字(它是表达式的一种形式) 但是,在Python中,可以使用两个星号作为命名参数列表传递字典。因此:
d.update(**{'a': 1, 'b': 2})
会有用的。但是有了这样的字典文字,这当然是无用的。但是,您可以在运行时构造一个字典
d2
,然后调用somefunc(**d2)
,以d2
键作为参数名调用函数,相应的值作为与这些参数名相关联的值。a参数必须是标识符<代码>a是一个标识符<代码>'a'不是,它是一个字符串文字(它是表达式的一种形式)
但是,在Python中,可以使用两个星号作为命名参数列表传递字典。因此:
d.update(**{'a': 1, 'b': 2})
会有用的。但是有了这样的字典文字,这当然是无用的。但是,您可以在运行时构造一个字典
d2
,然后调用somefunc(**d2)
,以d2
键作为参数名调用函数,相应的值作为与这些参数名关联的值。@DanielRoseman:当然。我为一个更有用的用例添加了一个简短的描述。@DanielRoseman:当然。我添加了一个更有用的用例的简短描述。