我有兩個列表soft_info
和bit_filp
,我正在使用list comprehension遍歷它,並且有一個函數update
,它返回兩個值。代碼如下所示:Python將多個返回值分配給多個列表
def update(si,bf):
............
I do some stuff here and update value of si and bf
...........
return(si,bf)
def main(args=None):
bytes =256
soft_info = [-75] * (8 * bytes)
bit_flip = [0] * (8 * bytes)
(soft_info, bit_flip)=[update(si,bf)
for si,bf in zip(soft_info,bit_flip)]
我想si
和bit_flip
與bf
更新soft_info
。
但我得到的錯誤ValueError: need more than 0 values to unpack
爲線:
(soft_info, bit_flip)=[update(si,bf) for si,bf in zip(soft_info,bit_flip)]
我相信回報兩個值回送等爲我檢查使用打印語句for循環。
誰能告訴我爲什麼發生這種情況?
你爲什麼不這樣做2個步驟先做列表理解,然後打印出來,所以你可以看到它的樣子,然後看到拆包的問題是什麼? –
給我們整個錯誤,請。 – Marcin
另外,什麼是'soft_info_lp'和'bit_flip_record_lp'?你不要在代碼中的任何地方定義它們。 –