Python-迭代时修改列表

l  = range(100)                         

for i in l:

print i,

print l.pop(0),

print l.pop(0)

上面的python代码使输出与预期的完全不同。我想循环播放项目,以便在循环播放时可以跳过某个项目。

回答:

该代码试图在迭代列表时修改列表。我在任何情况下都不会这样做。

你可以使用slice运算符mylist[::3]跳过列表中的每三个项目。

mylist = [i for i in range(100)]

for i in mylist[::3]:

print(i)

关于我的示例的其他要点与python 3.0中的新语法有关。

  • 我使用列表推导定义mylist,因为它在Python 3.0中有效(请参见下文)
  • print是python 3.0中的函数

现在,Python 3.0 range()的行为类似于xrange(),但它适用于任意大小的值。后者不再存在。

以上是 Python-迭代时修改列表 的全部内容, 来源链接: utcz.com/qa/407065.html

回到顶部