天天看點

Python的for循環如何同時輸出兩個或者多個值,報錯ValueError: too many values to unpack (expected 3)

Python的for循環如何同時輸出兩個或者多個值

錯誤用法如下:

def surface3d_data():
    print('開始制圖第一步:導入xyz資料')
    iix, iiy, iiz = float_range()
    print('leibie:', type(iix))
    for t0, t1, t2 in tqdm(iix, iiy, iiz):    # tqdm()用于顯示疊代器的進度條顯示
        x = t0
        y = t1
        z = t2
        print('x, y, z = (%r, %r, %r):' % (x, y, z))
        yield [x, y, z]      

會報錯如下:

ValueError: too many values to unpack (expected 3)

ValueError:太多值無法解包

注意

當傳入多個參數時,在 for 循環語句 in 那一條後面不能直接跟上清單、元組等來循環

需将 iix, iiy, iiz 用 zip() 括起來

def surface3d_data():
    print('開始制圖第一步:導入xyz資料')
    iix, iiy, iiz = float_range()
    print('leibie:', type(iix))
    for t0, t1, t2 in tqdm(zip(iix, iiy, iiz)):
        x = t0
        y = t1
        z = t2
        print('x, y, z = (%r, %r, %r):' % (x, y, z))
        yield [x, y, z]      

這樣就成功了,不會報錯了。