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

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/

10-09 04:58