我有一个简单的二维数组,如下所示:
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
最佳答案
您可以这样做:
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']]
关于python - 具有索引查找的二维数组列表理解,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53735005/