我想知道如何在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
功能?
请注意,该函数只是一些示例代码,我很好奇如何做到这一点。 另外,如果列表很大,维护数组的副本可能不可行,所以这不是一个真正的解决方案。
该列表未在位编辑... – gioi 2013-04-08 12:32:31
您想在“重新启动”该功能后继续原始循环吗?即你想要递归吗?还是只想放弃当前的函数并重新开始? – poke 2013-04-08 12:33:19
@ioi我假设这个列表将在''做一些事情到列表''部分编辑。 – poke 2013-04-08 12:33:40