具有索引查找功能的二维数组列表理解

时间:2018-12-12 01:58:20

标签: python arrays

我有一个简单的二维数组,如下所示:

arr = [[2,1,0],[0,2,1]]

现在,我试图通过使用数组中的值作为列表的索引,用列表中的值替换2d数组中的值。例如,我的列表如下所示:

list = ['Cat', 'Dog', 'Fox']

我试图得到这样的结果:

[['Fox','Dog','Cat'],['Cat','Fox','Dog']]

我试图弄清楚如何使用列表理解来有效地做到这一点,但是我找不到一种可行的方法。

我认为这应该可行:

[list[x] for x in y for y in arr ]

但是,它告诉我NameError: name 'y' is not defined

1 个答案:

答案 0 :(得分:5)

您可以这样做:

arr = [[2,1,0],[0,2,1]]

lst = ['Cat', 'Dog', 'Fox']

result = [[lst[i] for i in sublist] for sublist in arr]

print(result)

输出

[['Fox', 'Dog', 'Cat'], ['Cat', 'Fox', 'Dog']]