为什么要讲解包
因为我觉得解包是 Python 的一大特性,大大提升了编程的效率,而且适用性很广
啥是解包
- 个人通俗理解:解开包袱,拿出东西
- 正确理解:将元素从可迭代对象中一个个取出来
- python 中,解包是自动完成的
最简单的解包栗子
a, b, c = [1, 2, 3]
print(a, b, c)
# 输出结果
1 2 3
列表有 3 个元素,此时也需要 3 个变量去接,否则会报错
a, b = [1, 2, 3]
# 输出结果
a, b = [1, 2, 3]
ValueError: too many values to unpack (expected 2)
太多值无法解包
重点
- 除了列表可以解包,任何可迭代对象都支持解包
- 比如:列表、元组、字典、集合、字符串、生成器,只要实现了 __next__ 方法的对象都是可迭代对象