很抱歉,如果这个问题已在某个地方得到解答,但我找不到我想要的东西!
所以,假设我有一个像这样的矩阵/数组
a = [[1,2,3], [4,5,6], [7,8,9]]
有一个类似下面的数组,它应该表示我想为上面的矩阵检索的元素索引...
b = [2,0,1] # get the 2nd element from a[0], the 0th from a[1] and 1st from a[2]
我想要的是像
c = magic (a,b)
c = [3,4,8] # elements correspondent with the indexes from b
抓住的是,我想做那个没有LOOPS(不适用于/同时或类似) 我尝试过做这样的事......
c = a[:,b[:]]
但无济于事....我还能尝试别的吗?
答案 0 :(得分:0)
列表理解如:
c = [ a[indx][b[indx]] for indx in range(len(b)) ]
print c #[3, 4, 8]
答案 1 :(得分:0)
使用list-comprehension和zip
来实现:
a = [[1,2,3], [4,5,6], [7,8,9]]
b = [2,0,1]
c = [a[i][j] for i,j in zip(range(len(b)), b)]
print(c)
# Output [3, 4, 8]