Python中级之解压赋值
1.如何更好的学习Python2.Python准备之Python环境安装和Pycharm使用3.Python准备之笔记-MarkDown格式及云端笔记4.Python准备之软件开发规范5.Python基础之计算机基础6.Python基础之编程语言7.Python基础之Python基本构成8.Python基础之流程控制9.Python特殊机制之垃圾回收机制10.Python中级之数据类型的内置方法11.Python中级之可变数据类型和不可变数据类型12.Python中级之文件操作13.Python中级之列表字典推导式和三元运算符14.Python中级之深浅拷贝15.Python中级之字符编码16.Python中级之异常处理
17.Python中级之解压赋值
18.Python高级之闭包函数19.Python高级之函数介绍20.Python高级之名称空间与作用域21.Python高级之装饰器22.Python高级之模块与包23.Python高级之迭代器与生成器24.Python模块之re模块25.Python模块之os模块26.Python模块之random模块27.Python模块之序列化模块(json模块与pickle模块)28.Python模块之time模块和datetme模块29.Python高级之递归函数30.Python高级之常见的内置函数31.Python模块之sys模块32.Python模块之hashlib模块33.Python模块之logging模块34.Python面向对象之面向对象编程35.Python面向对象之三大特征-封装36.Python面向对象之绑定方法和非绑定方法37.Python面向对象之三大特征-继承38.Python面向对象之三大特征-多态39.Python面向对象之派生40.Python面向对象之组合41.Python面向对象之反射解压赋值
【一】解压赋值的概念
- 解压赋值是指将一个可迭代对象(如列表、元组、字典的键值对等)中的元素拆分并分配给多个变量。
- 这种技术非常方便,可以简洁地从一个数据结构中提取元素并将它们分配给多个变量。需要确保变量的数量与可迭代对象中的元素数量匹配,否则会引发
ValueError
。 - 总之,解压赋值是一种使代码更简洁、可读性更强的技术,用于同时访问可迭代对象中的多个元素。
可迭代对象的概念可以查看一下后面的文章:Python高级之迭代器与生成器 - Lea4ning - 博客园 (cnblogs.com) 不用看生成器,了解一下可迭代对象就可以了 |
---|
【二】解压赋值与通过多个变量赋值
- 解压赋值和通过多个变量赋值是两个概念,它们在某种程度上是相关的,但有一些微妙的区别。
- 多个变量赋值包括了解压赋值,不用在概念上钻牛角尖,解压赋值只是多了
*
和**
的解包方法
解压赋值与通过多个变量赋值的区别:
- 语法:
- 解压赋值通常使用
*
或**
运算符。 - 通过多个变量赋值直接将元素赋值给变量。
- 解压赋值通常使用
- 数据类型:
- 解压赋值适用于可迭代对象,如列表、元组、字典等。
- 通过多个变量赋值适用于任何可迭代或可索引的数据结构,例如字符串、列表、元组等。
总的来说,解压赋值更强调的是从一个可迭代对象中提取元素并赋值给多个变量,而通过多个变量赋值则更侧重于将整个数据结构中的元素赋值给多个变量。在语法上有一些区别,但在实际使用中,两者可能会交叉使用,具体取决于你的需求和编码风格。
解压赋值:
解压赋值是指将一个可迭代对象(如列表、元组、字典的键值对等)中的元素分别赋值给多个变量。这通常使用 *
运算符(在列表和元组中)或 **
运算符(在字典中)来实现。
示例:
my_list = [1, 2, [3, 4], {'5': 6}] a, b, c, d = my_list print(a, b, c, d) # 1 2 [3, 4] {'5': 6} # 通过 ** 为txt解压赋值 并加载到new_dict字典中 txt = {'a':1,'b':2} new_dict ={} new_dict.update(**txt) print(new_dict)
# 而通过解压赋值,我可以直接将数据传入,而不需要挨个进行关键字传参 # 解压赋值,使用 * / ** 的情况不是很多,因为好像 * 的限制很多,很多情况下用不了
通过多个变量赋值:
通过多个变量赋值是指直接将一个数据结构(如字符串、列表、元组等)中的元素赋值给多个变量。这并不涉及到解压操作,而是将整个数据结构赋值给多个变量。
示例:
my_string = "abc" a, b, c = my_string my_list = [1, 2, 3] x, y, z = my_list
- 实际上,字符串是通过多个变量赋值拿到其中每一个字符的,这就是字符串的可迭代性。当你对字符串进行迭代时,会访问字符串中的每一个字符。
my_string = "abc" for char in my_string: print(char)
txt = 'abc' a,b,c = txt print(a,b,c) # a b c
*
列表解压**
字典解压赋值
字符串解压赋值
x, y = '12' print(x) # 1 print(y) # 2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了