首页 > 解决方案 > 选择二维数组第二维的特定元素

问题描述

我在python中有一个这样的列表:

a = [[5, -4, 6], [9, 0, 6], [20, -1, 9], [6, 5, -7]]

我有一个b这样的数组:

b = [0, 1, 2, 0]

我怎样才能得到这个清单?

[ a[0][b[0]], a[1][b[1]], a[2][b[2]], a[3][b[3]] ]

我应该提到,b和的长度a都是变量n。我知道我可以用这些值创建一个带有循环的列表,但我正在为此寻找一种语法(类似于 map 的东西)。

谢谢你的帮助。

标签: pythonpython-3.xlist

解决方案


一个快速的方法zip是:

a = [[5, -4, 6], [9, 0, 6], [20, -1, 9], [6, 5, -7]]
b = [0, 1, 2, 0]
result = [ai[bi] for ai, bi in zip(a, b)]
print(result)
# [5, 0, 9, 6]

推荐阅读