首页 > 解决方案 > 打开包装并一步计算它们

问题描述

我正在尝试迭代Xs 和ys 同时解包它们并使用该enumerate()函数来计算对,如以下代码所示:

X = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20]]
Y = [[11, 21, 31, 41], [51, 61, 71, 81], [91, 101, 111, 121], [131, 141, 151, 161], [171, 181, 191, 201]]

index = 0
for x, y in zip(X, Y):

    print(f'{index }, {x}, {y}')

    index += 1

我想保存该index += 1行,并能够在 for 循环中获取所有索引、x 和 y

我试过的:

X = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20]]
Y = [[11, 21, 31, 41], [51, 61, 71, 81], [91, 101, 111, 121], [131, 141, 151, 161], [171, 181, 191, 201]]

for index, data in enumerate(zip(X, Y)):
    x, y = data
    print(f'{index}, {x}, {y}')

期望的结果:

可以在以下示意性伪代码中看到所需的结果:

#for index, x, y in zip(X, Y):
#    print(f'{index }, {x}, {y}')

我在这里想念什么?

提前致谢。

标签: python-3.xzipenumerate

解决方案


您可以将enumerate直接返回的值解压缩到元组中(您的伪代码只是错过了括号):

for index, (x, y) in enumerate(zip(X, Y)):
    print(f'{index}, {x}, {y}')

-->

0, [1, 2, 3, 4], [11, 21, 31, 41]
1, [5, 6, 7, 8], [51, 61, 71, 81]
...

推荐阅读