Python 需要帮助修复ValueError:要解包的值太多(预计3个)
我是python的新手,所以这可能是一个简单的任务。然而,我在这里有点沮丧。。。事情是这样的: 我在Pyhton中定义了此函数:Python 需要帮助修复ValueError:要解包的值太多(预计3个),python,Python,我是python的新手,所以这可能是一个简单的任务。然而,我在这里有点沮丧。。。事情是这样的: 我在Pyhton中定义了此函数: def arrays(): """ returns to 2 sets of 3d coordinates """ x1 = [0.0, 0.0, 0.0, 0.0, 0.0] y1 = [110.0,110.0,110.0,110.0,110.0] z1 =
def arrays():
"""
returns to 2 sets of 3d coordinates
"""
x1 = [0.0, 0.0, 0.0, 0.0, 0.0]
y1 = [110.0,110.0,110.0,110.0,110.0]
z1 = [200.0,160.0,120.0,80.0 ,40.0 ]
x2 = [60.0, 60.0, 60.0, 60.0, 60.0 ]
y2 = [0.0,0.0,0.0,0.0,0.0]
z2 = [200.0,160.0,120.0,80.0 ,40.0 ]
well1 = [x1,y1,z1]
well2 = [x2,y2,z2]
return well1,well2
现在,当执行下面的代码时,我得到
>>> well1,well2=arrays()
>>> for xs,ys,zs in [well1,well2]:
... print(xs)
... for i,j,k in [xs,ys,zs]:
... print(i,j,k)
...
[0.0, 0.0, 0.0, 0.0, 0.0]
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
ValueError: too many values to unpack (expected 3)
>>井1,井2=阵列()
>>>对于[well1,well2]中的xs,ys,zs:
... 打印(xs)
... 对于[xs,ys,zs]中的i,j,k:
... 打印(i、j、k)
...
[0.0, 0.0, 0.0, 0.0, 0.0]
回溯(最近一次呼叫最后一次):
文件“”,第3行,在
ValueError:要解压缩的值太多(应为3个)
我如何才能打印这些值?这里的适当语法是什么?
我找不到任何有助于解决此问题的方法。有人能帮忙吗?非常感谢!干杯引发的错误来自内部循环:
for i,j,k in [xs,ys,zs]:
问题是列表中的每个元素都将被解包。每个元素(xs、ys、zs
)中都有5个元素
在一个简单的例子中,在解包过程中,左侧和右侧的元素数量应该相同。这意味着如果您的xs
有5个元素,您的左侧应该有5个变量:
i,j,k,a,b = xs
因此,您的代码引发异常,因为左侧只有3个变量
解决方案
我想您希望输出如下内容:0.0、110.0、200.0
。在这种情况下,您应该尝试使用
什么是期望输出?我假设您想在第一种情况下打印类似于
0.0、110.0、200.0的内容?希望得到什么输出?X、Y和Z是列表。您想将它们输出为列表还是元素?@Vitalii确实,这就是我所看到的。检索xs[0]、ys[0]、z[0],然后检索xs[1]、ys[1]、z[1],依此类推。在单个值中,I、j和k。
for xs,ys,zs in well1,well2:
print(xs)
for i,j,k in zip(xs,ys,zs):
print(i,j,k)
[0.0, 0.0, 0.0, 0.0, 0.0]
0.0 110.0 200.0
0.0 110.0 160.0
0.0 110.0 120.0
0.0 110.0 80.0
0.0 110.0 40.0
[60.0, 60.0, 60.0, 60.0, 60.0]
60.0 0.0 200.0
60.0 0.0 160.0
60.0 0.0 120.0
60.0 0.0 80.0
60.0 0.0 40.0