I have a list of tuples `data`:
data =[(array([[2, 1, 3]]), array([1])),
(array([[2, 1, 2]]), array([1])),
(array([[4, 4, 4]]), array([0])),
(array([[4, 1, 1]]), array([0])),
(array([[4, 4, 3]]), array([0]))]
为简单起见,此列表在这里只有5个元组。
当我运行以下代码时,我似乎可以打开每个元组包装每个迭代:
for x,y in data2:
print(x,y)
output:
[[2 1 3]] [1]
[[2 1 2]] [1]
[[4 4 4]] [0]
[[4 1 1]] [0]
[[4 4 3]] [0]
This also works:
for x,y in data2[:2]:
print(x,y)
output:
[[2 1 3]] [1]
[[2 1 2]] [1]
However, when I take only a single tuple from the list:
for x,y in data2[0]:
print(x,y)
output:
ValueError Traceback (most recent call last)
<ipython-input-185-1eed1fccdb3a> in <module>()
----> 1 for x,y in data2[0]:
2 print(x,y)
ValueError: not enough values to unpack (expected 2, got 1)
我对较早情况下的分组的打开方式感到困惑,防止最后一个案例也成功打开了元组。
谢谢。
在您通过list
循环的前两种情况下,在您访问tuple
不确定您要实现的目标,而不是data[0]
,data[:1]
将起作用。
如果您的数据看起来像这样:
data =[([[2, 1, 3]], [1]),
([[2, 1, 2]], [1]),
([[4, 4, 4]]), [0]),
([[4, 1, 1]], [0]),
([[4, 4, 3]], [0])]
for [a], b in data:
print a, b
输出:
[2, 1, 3] [1]
[2, 1, 2] [1]
[4, 4, 4] [0]
[4, 1, 1] [0]
[4, 4, 3] [0]