Pythonで次のことを行う方法を知りたいです。forループを含む関数がある場合、if ステートメントを使用して特定の数値をスキップすることができます。
これは、activestate.com から入手した fisher-yates の実装です。
import random
def shuffle(ary):
a=len(ary)
b=a-1
for d in range(b,0,-1):
e=random.randint(0,d)
if e == d:
continue
ary[d],ary[e]=ary[e],ary[d]
return ary
dcontinueの次の値に進むだけです。continueを実行する代わりに、元のパラメーターを使用して関数を再実行するにはどうすればよいaryですか?
関数は単なるサンプル コードであることに注意してください。これを一般的に行う方法に興味があります。また、リストが大きい場合、配列のコピーを維持できない可能性があるため、これは実際には解決策ではありません。