之前在C语言变量前面加星号是什么意思这篇文章中提到了Python中的解构字典,该功能好像是在比较新的Python版本中才有的,是一个十分好用且简洁的字典dict操作的方法。下面我们来简单介绍一下。
Python解构字典Python中的字典dict是一种以key和value(键值对)为元素基本结构的数据结构(据了解,Python3.6版本之前,字典是无序的,之后3.7+的版本保留了元素插入的顺序),而且是一种性能相对高效的数据结构。
Python的解构字典,是一个解包字典中键值对的过程,有很多种方法,比如可以使用字典内置的方法items()(配合for循环)来实现,比如下方的这个代码:
dictObj = {"a":1,"b":2}
for key, value in dictObj.items():
print(key, value)代码运行之后,得到输出:
a 1
b 2
但是,在较新版本的Python中,我们可以直接使用下面的这个语法:
**dictObj
该语法可以直接将Python的字典dict对象解构为对应的键值对。比如下方这个代码,并没有使用字典的items()方法,却依然可以获取到dict的key和value,但是该功能好像只能用作函数的参数:
def test(x,y,z):
sum = x+y+z print(sum)dictObj = {"x":1,"y":2,"z":3}test(**dictObj)
该代码运行之后,得到输出:6星号解构字典的使用注意点我们先来看下这段代码:
def test(x,y,z):
sum = x+y+z
print(sum)dictObj = {"a":1,"b":2,"c":3}test(**dictObj)运行之后,Python提示:test() got an unexpected keyword argument 'a'也就是说,在函数中使用解构字典到函数参数的方法的时候,函数的参数名称应当与被解构的字典中的键的名称相对应。
免责声明:内容仅供参考,不保证正确性,不作任何决策依据!
|