欢迎访问Python3分钟系列。花3分钟时间,学习或温习一个Python知识点。今天是第239。
大家好,我是搬运工小K。
今天要讲的是关于可迭代对象的打包和解包。
在Python中,打包和解包是操作可迭代对象(如列表、元组、集合、字符串等)的核心功能。
接下面细细讲解下具体使用:
打包
打包是指将多个值组合成一个可迭代对象。
赋值打包
在赋值语句中,*可以将多余的值打包到一个列表中:
x, *y = [1, 'masihu', 2, "Kevin"]
print(x) # 输出: 1
print(y) # 输出: ['masihu', 2, 'Kevin']
x获得列表的第一个元素;
*y打包剩余元素成为一个新列表。
集合打包
对于集合,*也能实现打包,不过集合是无序的,因此结果的顺序可能会有变化:
x, *y = {1, 'masihu', 2, "Kevin"}
print(x, y) # 输出顺序可能不同,例如: 1 ['masihu', 2, 'Kevin']
字典打包
字典的打包会提取字典的键(keys),然后按顺序赋值:
x, *y = {'maishu': 1, 'Kevin': 2, 'keke': 3}
print(x) # 输出: maishu
print(y) # 输出: ['Kevin', 'keke']
字符串打包
字符串中的每个字符也可以被打包:
x, *y = 'maishu'
print(x) # 输出: m
print(y) # 输出: ['a', 'i', 's', 'h', 'u']
解包
解包是指将可迭代对象中的元素拆分为独立的值。
解包元组、列表和集合
*可以解包容器,将其元素拆分为独立值:
# 元组解包
r1 = (1, 2, 3)
print(*r1) # 输出: 1 2 3
# 列表解包
r2 = [1, 2, 3]
print(*r2) # 输出: 1 2 3
r3 = {1, 2, 2}
print(*r4) # 输出: 1 2(集合无序,结果顺序可能不同)
解包字典
对字典进行解包时:
*解包的是字典的键(keys);可以进一步解包字典的值或键值对。
r4 = {'maishu': 1, 'Kevin': 2, 'keke': 3}
print(*r4) # 输出: maishu Kevin keke(字典键)
print(*r4.values()) # 输出: 1 2 3(字典值)
print(*r4.items()) # 输出: ('maishu', 1) ('Kevin', 2) ('keke', 3)
解包字符串
字符串解包将每个字符分开处理:
r5 = 'maishu'
print(*r5) # 输出: m a i s h u
常见应用
快速交换变量
使用解包可以轻松交换变量的值,而无需借助临时变量:
a, b = 10, 20
a, b = b, a
print(a, b) # 输出: 20 10
合并多个列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = [*list1, *list2]
print(combined) # 输出: [1, 2, 3, 4, 5, 6]
函数参数传递
*也可以用于将参数解包传递给函数:
def greet(a, b, c):
print(a, b, c)
args = [1, 2, 3]
greet(*args) # 输出: 1 2 3
最后
我相信你已经掌握了可迭代对象打包与解包操作。
同时也希望这些技巧能帮助你写出更简洁、高效的代码!
如果你想加速Python学习,获得专业的指导,30天学会一门技能!
欢迎参加麦叔Python实战训练营,入门营,爬虫营,办公自动化营同步开放。
详情点这里:麦叔Python训练营
如果你希望我更新某个特定小知识,欢迎给我留言。
原文链接:https://www.zsiss.com/9030.html,转载请注明出处。

评论0