我试图在一行中打印每个列表中的每一个第一位数字,我浪费了大约1个小时来尝试,但没有解决方法
Xx = [1298, 1390, 1487, 1573, 1669, 1766, 1766, 1672, 1573, 1485, 1392, 1297, 1303, 1388, 1487, 1577, 1664, 1757, 1763, 1671,
1577, 1487, 1393, 1298, 1301, 1376, 1449, 1535, 1604, 1682, 1760, 1769, 1676, 1568, 1485, 1398, 1300]
Yx = [331, 328, 328, 326, 329, 329, 422, 422, 416, 422, 419, 421, 514, 518, 516, 518, 518, 517, 605, 606, 605,
603, 602, 605, 730, 737, 736, 738, 740, 740, 742, 858, 869, 860, 857, 863, 864]
for posX, posY in (Xx, Yx):
print(posX, posY)
错误: 对于posX,(Xx,Yx)中的posY: ValueError:太多值无法解包(预期2)
答案 0 :(得分:1)
如果您打算在一行中的每个列表中一起打印具有相同索引的数字,依此类推(按照您尝试的代码进行打印),则需要使用zip:
for x, y in zip(Xx, Yx):
print(x, y)
如果您打算仅打印每个列表的第一项(您提到了类似的内容)
print(Xx[0], Yx[0])
答案 1 :(得分:0)
要同时在多个列表中进行迭代,您需要zip()
。
zip
给出一个tuple
,其中包含作为参数提供给它的所有列表的迭代器。
示例:1
l1 = [1, 2, 3]
l2 = [4, 5, 6]
l3 = [7, 8, 9]
for l, m, n in zip(l1, l2, l3):
print(l, m, n)
输出:
1 4 7
2 5 8
3 6 9
示例:2
l1 = [1, 2, 3]
l2 = [4, 5, 6]
l3 = [7, 8, 9, 10]
l4 = [11, 12]
for l, m, n, o in zip(l1, l2, l3, l4):
print(l, m, n, o)
输出:
1 4 7 11
2 5 8 12
注意:在示例2中,列表l3
和l4
的元素数不相等。因此,zip
迭代仅进行到所有参数li的元素数量最少为止