python - 在一个函数中,ValueError: too many values to unpack (expected 2)
问题描述
我有一个功能:
def load_data(datafile, categories=None, cat_columns=None):
# Some stuff
return (data_x, data_y, categorical_columns) + ((ohe.categories_, ) if not categories else ())
然后我调用它两次:
training_x, training_y, cat_columns, categories = loader.load_data(
'data/training.csv')
test_x, test_y = loader.load_data(
'data/test.csv', categories=categories, cat_columns=cat_columns)
然后我得到了可怕的ValueError: too many values to unpack (expected 2)
错误,特别是我第二次调用它(test_x,test_y)
我究竟做错了什么?
解决方案
x,y = [1,2,3] # x=1, y=2 but we didn't have any variable to store element 3
上面写的行会产生一个ValueError : too many values to unpack。
就像这里我们试图解包列表元素并将它们分配给变量,但是我们在列表中有三个元素要解包,只有两个变量来存储值,为了解决这个问题,我们必须再提供一个变量。
x,y,z = [1,2,3] # here we have x=1, y=2, z=3
推荐阅读
- r - 将数据框一分为二,仅更改两个数据框之一的变量名称(setnames)
- bash - 向应用程序发送命令并通过 bash 中的文件描述符读取其输出
- maxlength - AllenNLP 问答的段落长度限制
- c# - Prism DialogService 显示模式对话框
- r - 逻辑回归中的空方差和残差方差较大
- maven - 在 IntelliJ 中找不到 Maven java-doc 插件
- python-3.x - 在 Discord.py 中创建 cog 时出现错误
- python - ORA-00905: 缺少关键字错误错误
- javascript - Vuex:是否有确定状态变化是否发生的“最佳实践”?
- php - php file_put_contents('php script.php','/tmp/tmpOut.html') 说“意外标记'('附近的语法错误”