首页 > 解决方案 > 允许 zip 函数将 1D 映射到 2D 数组

问题描述

假设我有这两个数组,其中一个是二维的。

letters = ['a', 'b', 'c', 'd']
values = [[1, 2, 3, 4], [10, 20, 30, 40]]

现在,我想要进行以下分配,以便letters匹配 中的每个列表values,如下所示:

a 1
b 2
c 3
d 4

a 10
b 20
c 30
d 40

以下代码仅在两者lettersvalues都是时才有效1D。我该如何解决它以实现我想要的上述任务?

letters = ['a', 'b', 'c', 'd']
values = [[1, 2, 3, 4], [10, 20, 30, 40]]
for l, v in zip(letters, values):
    print(l,v)

谢谢

标签: pythonpython-3.x

解决方案


您需要对数据进行两次迭代:

letters = ['a', 'b', 'c', 'd']
values = [[1, 2, 3, 4], [10, 20, 30, 40]]
for v in values:
  for a, b in zip(letters, v):
    print(f'{a} {b}')
  print()

输出:

a 1
b 2
c 3
d 4

a 10
b 20
c 30
d 40

推荐阅读