Sorunuzdan anladığım kadarıyla, a üzerinde belirttiğiniz bir permütasyonu uygulamak istediğiniz anlaşılıyor list. Bu, permütasyonda görünmesi gereken orijinalin elemanlarının indislerini tutan başka bir list(onu çağıralım p) belirterek yapılır . Daha sonra , her konumdaki öğeyi dizini o konumda olanla değiştirerek yeni bir tane yapmak için kullanırsınız .listlistplistp
def apply_permutation(lst, p):
return [lst[x] for x in p]
arr=list("abcde")
new_order=[3,2,0,1,4]
print apply_permutation(arr,new_order)
Bu baskı ['d', 'c', 'a', 'b', 'e'].
Bu aslında yeni bir şey yaratır list, ancak orijinalin "yerinde" olmasına izin vermek için önemsiz bir şekilde değiştirilebilir.