如果我的订单不如列表那么多,如何洗牌

how to shuffle a list if i have order is not as much as list

我想用函数 shuffle_order 打乱列表, 这是我的代码:

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


print(shuffle_order(['abcd','ienf','dfjs'],[2,1,3,0]))

我希望结果看起来像这样['cbda','nefi','jfsd']

如果我对你的问题的理解正确,你想根据你提供的顺序列表重新排序列表中的每个字符串。你可以试试这个:

def reorder_str(s, order):
    return ''.join([s[i] for i in order])


def encrypt_lst(lst, order):
    return [reorder_str(s, order) for s in lst]


print(encrypt_lst(['abcd', 'ienf', 'dfjs'], [2, 1, 3, 0]))
['cbda', 'nefi', 'jfsd']