成功解决 BUG:ValueError: too many values to unpack
异常解读
在 Python 代码编写过程中,会出现如下错误:
ValueError: too many values to unpack
该错误翻译为中文是:
太多值了
实际编码错误如下图所示。
错误复现
可以在 Python 文件中输入如下代码,即可出现本文标题所示错误:
a, b = [1, 2, 3]
错误信息如下
Traceback (most recent call last):
File "G:/PythonDemo/test.py", line 1, in <module>
a, b = [1, 2, 3]
ValueError: too many values to unpack (expected 2)
解决 BUG
上述代码是将一个包含三个元素的列表 [1, 2, 3]
解构赋值给两个变量 a 和 b。
由于列表中的元素数量超过了需要解构赋值的变量数量,导致了 "too many values to unpack"
的错误。
解决办法很简单
第一种:确保变量数量与要解构赋值的元素数量匹配。可以修改代码以匹配两个变量
a, b = [1, 2]
第二种:使用一个带有占位符的变量来接收多余的值:
a, b, *_ = [1, 2, 3]
第二种编码可以将多余的值放在
_
变量中,以避免 “too many values to unpack” 的错误
类似代码错误
将列表换成元组也会出现雷同 BUG,解决思路是一致的。
a, b = (1, 2, 3)
其他学习资料
- 《滚雪球学 Python》专栏与实体书:https://dream.blog.csdn.net/article/details/131268344
- 《爬虫 100 例》:https://blog.csdn.net/hihell/category_9280209.html
- 《Python 爬虫 120》:https://blog.csdn.net/hihell/category_11079529.html