リストを 2 つのリストに分割してから n 回シャッフルする必要があります。n が何であれ、2 つのリストを (n の範囲で) シャッフルする for ループを作成するのに問題があります。1回だけシャッフルします。これは関数の私のコードです:
def shuffle(xs,n=1):
il=list()
if len(xs)%2==0:
stop=int(len(xs)//2)
a=xs[:stop]
b=xs[stop:]
else:
stop=int(len(xs)//2)
a=xs[:stop]
b=xs[stop:]
if n>0:
for i in range(n):
shuffle=interleave(a,b)
else:
return
return shuffle
私のインターリーブ関数は以前に定義されており、正しく機能しているようです。