打印
[牛人杂谈]

Python较新版本中的新功能:星号解构字典

[复制链接]
570|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两只袜子|  楼主 | 2025-3-28 16:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前在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'也就是说,在函数中使用解构字典到函数参数的方法的时候,函数的参数名称应当与被解构的字典中的键的名称相对应。

免责声明:内容仅供参考,不保证正确性,不作任何决策依据!

使用特权

评论回复
沙发
flycamelaaa| | 2025-3-28 16:55 | 只看该作者
不错,C语言小知识,学起。。。

使用特权

评论回复
板凳
weifeng90| | 2025-3-28 20:19 | 只看该作者
感觉编程语言学多了,容易搞混淆啊。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2122

主题

8118

帖子

11

粉丝