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
ですか?
関数は単なるサンプル コードであることに注意してください。これを一般的に行う方法に興味があります。また、リストが大きい場合、配列のコピーを維持できない可能性があるため、これは実際には解決策ではありません。