将列表解压缩到python中另一个列表的索引中

Wat*_*rap 7 python iterable-unpacking

是否可以将列表中的数字列表解压缩到列表索引中?例如,我在列表中有一个列表,其中包含如下数字:

a = [[25,26,1,2,23], [15,16,11,12,10]]
Run Code Online (Sandbox Code Playgroud)

我需要把它们放在一个模式中,所以我做了这样的事情

newA = []

for lst in a:
    new_nums = [lst[4],lst[2],lst[3],lst[0],lst[1]]
    newA.append(new_nums)

print (newA) # prints -->[[23, 1, 2, 25, 26], [10, 11, 12, 15, 16]]
Run Code Online (Sandbox Code Playgroud)

所以我没有写作new_nums = [lst[4],lst[2],lst[3],lst[0],lst[1]],而是想把一个模式定义为一个被调用的列表pattern = [4,2,3,0,1],然后将它们解压缩到那些lst创建新顺序的索引中lst.

有没有一个很好的方法来做到这一点.

Mos*_*oye 7

给定一个被调用的索引列表pattern,您可以使用列表推导,如下所示:

new_lst = [[lst[i] for i in pattern] for lst in a]
Run Code Online (Sandbox Code Playgroud)