“数组中的元素的len大于2时,要解压缩的值太多(期望2)”>

问题描述 投票:3回答:4

也许问这个问题很奇怪,因为我当然不理解。

例如,如果我们有a=[(1,2), (3,4)];操作有效

for x,y in a:
    print(x,y)

但是只要我们在这些元组中添加任何其他元素,a=[(1,2,3),(4,5,6)]

for x,y in a:
    print(x,y)
---------------
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)

但是与zip(a[0],a[1])一起工作有效

[我看到这个问题已经被问过很多次了,但是我找不到任何理由说明为什么len大于2不能正常工作。

有人可以向我解释为什么吗?

也许问这个问题很奇怪,因为我当然不理解。例如,如果我们有a = [((1,2),(3,4)];该操作适用于x,y的形式:print(x,y)但只要我们...

python loops iterable-unpacking
4个回答
2
投票

好问题。


1
投票
too many values to unpack被抛出,因为您试图将3个元素的元组拆包(分配给变量)为2个变量-xy

1
投票
首先,尝试:

-1
投票
因为a中的元组每个都有三个元素,所以需要三个变量来解压缩它们。也就是说,
© www.soinside.com 2019 - 2024. All rights reserved.