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]
这样就成功了,不会报错了。