#coding=utf-8
def alive(m, n):
a = range(m)
while len(a)>1:
b = (n%len(a) and n%len(a) or min(len(a), n))-1
yield "%d is died" % a[b]
a = a[b+1:]+a[0:b]
import sys
m, n = len(sys.argv)>2 and tuple(map(int, sys.argv[1:3])) or (30, 6)
for i in alive(m, n):
print i
1: 定位删除的位置
2: 重构LIST
以上是用yield生成器的方式,也可以改成迭代器方式(iter, next)
链接: [url=http://cloudbbs.org/forum.php?mod=viewthread&tid=13193&page=10&extra=#pid70174]http://cloudbbs.org/forum.php?mod=viewthread&tid=13193&page=10&extra=#pid70174[/url]