循环整个列表本身和循环列表之间有什么区别[:]

时间:2019-04-25 07:12:27

标签: python

我写了一些代码来测试Josephus问题,但是我发现当我使用list和list [:]时,有两种方法可以循环它们,结果是不同的。前一种方法得到错误的结果,后一种方法得到正确的结果。但是list和list [:]都打印相同的元素和索引。

def Josef():
    people=list(range(1,31))
    i=1
    while len(people)>15:
          for j in people:#use for j in people[:] is ok
          if i==9:
               print('number {} off the boat'.format(j))
               people.remove(j)
               # print(people)
               i=1
          else:
               i=i+1
   return people
   print(Josef())

我希望在i = 9时一次打印一个数字,但是除了第一次输出数字是正确的以外,剩下的整个数字都会出错。

0 个答案:

没有答案