我想知道如何在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