簡體   English   中英

在函數中,ValueError:太多值無法解包(預期2)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM