如何从 python 中的随机播放 abcd 中取消随机播放?

how to deshuffle from shuffle abcd in python?

我编写了随机播放和 de_shuffle 的代码。但在 de_shuffle。 这是我的代码:

def shuffle_order(plain_text,order):
   return ''.join([plain_text[i] for i in order])


def de_shuffle_order(text_rand,order):
   
   return ''.join([text_rand[i] for i in order],order)

print(shuffle_order('abcd',[2,1,3,0]))
print(de_shuffle_order('cbad',[2,1,3,0]))

我的输出是:

 cbda
 abdc #i want to make abcd

我认为 'cbad' 是一个错字,应该是 'cbda':

def shuffle_order(plain_text,order):
   return ''.join([plain_text[i] for i in order])


def de_shuffle_order(text_rand,order):
    d = dict(zip(text_rand, order))
    return ''.join(sorted(text_rand, key=lambda k: d[k]))


print(shuffle_order('abcd',[2,1,3,0]))
print(de_shuffle_order('cbda',[2,1,3,0]))

打印:

cbda
abcd