小编sar*_*ker的帖子

Python如何恢复列表重新排列的模式

因此,我正在根据索引模式重新排列列表,并希望找到一种方法来计算我需要将列表恢复到原始顺序的模式。

对于我的示例,我使用 5 个项目的列表,因为我可以计算出将列表恢复到原始状态所需的模式。

然而,当处理数百个列表项时,这并不那么容易。

def rearrange(pattern: list, L: list):
    new_list = []
    for i in pattern:
        new_list.append(L[i-1])
    return new_list

print(rearrange([2,5,1,3,4], ['q','t','g','x','r']))

#['t', 'r', 'q', 'g', 'x']
Run Code Online (Sandbox Code Playgroud)

为了将其设置回原来的模式我会使用

print(rearrange([3,1,4,5,2],['t', 'r', 'q', 'g', 'x']))
#['q', 't', 'g', 'x', 'r']
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是一种计算上述示例中的模式“[3,1,4,5,2]”的方法。运行脚本以便我可以将列表设置回其原始顺序。

使用一个更大的例子:

print(rearrange([18,20,10,11,13,1,9,12,16,6,15,5,3,7,17,2,19,8,14,4],['e','p','b','i','s','r','q','h','m','f','c','g','d','k','l','t','a','n','j','o']))
#['n', 'o', 'f', 'c', 'd', 'e', 'm', 'g', 't', 'r', 'l', 's', 'b', 'q', 'a', 'p', 'j', 'h', 'k', 'i']
Run Code Online (Sandbox Code Playgroud)

但我需要知道与这个新列表一起使用的模式,以便将其返回到原始状态。

print(rearrange([???],['n', 'o', 'f', 'c', 'd', 'e', 'm', 'g', 't', 'r', 'l', 's', 'b', 'q', 'a', 'p', 'j', 'h', …
Run Code Online (Sandbox Code Playgroud)

python list revert

6
推荐指数
1
解决办法
154
查看次数

标签 统计

list ×1

python ×1

revert ×1