新浪SEA_普通开发者免推荐认证活动
#coding=utf-8def 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 sysm, 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)
链接: http://cloudbbs.org/forum.php?mod=viewthread&tid=13193&page=10&extra=#pid70174