使用 dict() 函数创建字典对象?
Using dict() function to create a dictionary object?
我可以按如下方式创建 dictionary
对象:
a = dict(name='John', country='Norway')
输出为:{'name': 'John', 'country': 'Norway'}
但是,以下语句会引发错误:
dict([(name, 'John'), (country, 'Norway')])
Error:
NameError: name 'name' is not defined
在这两种语法中,我使用的 name
和 country
没有引号,但只有第二种语法会引发错误。
第二种语法与以下代码一起正常工作:
a = dict([(1, 'John'), (2, 'Norway')])
输出:{1: 'John', 2: 'Norway'}
嗯...
对于第一个示例,它是这样完成的:
def dummydict(**kwargs):
return kwargs
>>> dummydict(a=1, b=2, c=4)
{'a': 1, 'b': 2, 'c': 4}
>>>
如您所见,**kwargs
将关键字参数解压缩到字典中,这就是它起作用的原因。
如documentation所述:
**kwargs allows you to pass keyworded variable length of arguments to a function. You should use **kwargs if you want to handle named arguments in a function.
为什么第二个示例不起作用,因为它被视为变量名,第二个不是命名参数,它只是列表中的元组,您必须这样做:
dict([('name', 'John'), ('country', 'Norway')])
我可以按如下方式创建 dictionary
对象:
a = dict(name='John', country='Norway')
输出为:{'name': 'John', 'country': 'Norway'}
但是,以下语句会引发错误:
dict([(name, 'John'), (country, 'Norway')])
Error:
NameError: name 'name' is not defined
在这两种语法中,我使用的 name
和 country
没有引号,但只有第二种语法会引发错误。
第二种语法与以下代码一起正常工作:
a = dict([(1, 'John'), (2, 'Norway')])
输出:{1: 'John', 2: 'Norway'}
嗯...
对于第一个示例,它是这样完成的:
def dummydict(**kwargs):
return kwargs
>>> dummydict(a=1, b=2, c=4)
{'a': 1, 'b': 2, 'c': 4}
>>>
如您所见,**kwargs
将关键字参数解压缩到字典中,这就是它起作用的原因。
如documentation所述:
**kwargs allows you to pass keyworded variable length of arguments to a function. You should use **kwargs if you want to handle named arguments in a function.
为什么第二个示例不起作用,因为它被视为变量名,第二个不是命名参数,它只是列表中的元组,您必须这样做:
dict([('name', 'John'), ('country', 'Norway')])