我想知道如何在 Python 中执行以下操作。如果我有一个带有for
循环的函数,则可以使用 if 语句跳过某些数字。
这是从 activestate.com 获得的 fisher-yates d 的实现。
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
现在continue
只需转到 d 的下一个值。我怎样才能不做continue
,用原始参数重新运行函数ary
?
请注意,该函数只是一些示例代码,我很好奇如何做到这一点。此外,如果列表很大,则可能无法维护数组的副本,因此这不是真正的解决方案。