[英]In a function, 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)
我究竟做錯了什么?
if not categories else ()
如果為分類,則返回一個空元組。 充其量,這只是一個價值。 您不能將一個空的元組test_x, test_y
成兩個值test_x, test_y
。
我不確定您要在這里做什么,但是您可以通過修改它來解決
return ... if not categories else (None, None)
x,y = [1,2,3] # x=1, y=2 but we didn't have any variable to store element 3
上面編寫的一行將產生ValueError:太多的值無法解壓 。
如此處所示,我們嘗試解壓縮list元素並將其分配給變量,但是我們要在列表中解壓縮三個元素,只有兩個變量來存儲值,要解決此問題,我們必須再提供一個變量。
x,y,z = [1,2,3] # here we have x=1, y=2, z=3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.