国际访客建议访问 Primers 编程伙伴 国际版站点 > Python 教程 > 解包操作 以获得更好的体验。

# Python 的解包操作

解包操作(Unpacking)允许我们将一个可迭代对象(如列表、元组、字典等)中的元素提取到多个变量中。

# 序列解包

最常见的解包是从元组或列表中提取元素。例如:

运行示例

student_info:tuple[str, int, str] = ("Yukari", 17, "female")
name, age, sex = student_info
print(name, age, sex)
集合也可以序列解包,但集合是无序的,赋值的顺序随机。

# 部分解包

可以在序列解包中使用下划线(_)忽略不需要的元素。例如:

运行示例

students:list[str] = ["Tom", "Jerry", "Spike", "Tuffy"]
first, _, _, last = students
print(first, last)

# 使用星号

使用星号(*)可以将元组、数组或集合拆分成独立的元素。例如

运行示例

students:list[str] = ["Tom", "Jerry", "Spike", "Tuffy", "Tyke", "Butch"]
warp1 = [students]
warp2 = [*students]
print(warp1)
print(warp2)

可以在序列解包中使用星号(*)获取多个元素。例如:

运行示例

students:list[str] = ["Tom", "Jerry", "Spike", "Tuffy", "Tyke", "Butch"]
first, *_, last = students     # _ 是数组,获取多个元素
print(first, last)

# 键值对解包

通过 items 方法可以获得字典的键值对集合,可以对单个字典的键值对进行解包。

运行示例

score_list:dict[str,int] = {
    'Tom': 88,
    'Jerry': 99,
    'Spike': 66
}

# 解包单个键值对
name, score = list(score_list.items())[0]
print(name, score)

# 通过键值对解包简化 for 循环
for key,value in score_list.items():
    print(key, value)

# 使用星号解包字典

使用两个星号(*)可以将字典拆分成独立的键值对。例如:

运行示例

score_list:dict[str,int] = {
    'Tom': 88,
    'Jerry': 99,
    'Spike': 66
}

warp = {**score_list}
print(warp)
本文 更新于: 2025-06-19 01:15:25 创建于: 2025-06-19 01:15:25