我有一个简单的二维数组,如下所示:
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
答案 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']]