关于可迭代对象的打包和解包

欢迎访问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

评论0

请先
外贸商城 M010(服装服饰)
外贸商城 M010(服装服饰)
3分钟前 有人购买 去瞅瞅看

社交账号快速登录