您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python-迭代时修改列表

Python-迭代时修改列表

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

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

mylist = [i for i in range(100)]
for i in mylist[::3]:
    print(i)

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

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

永远不要更改要循环的容器,因为不会通知容器中的迭代器你所做的更改,并且你已经注意到,这很可能会产生完全不同的循环和/或不正确的循环。在正常情况下,循环访问容器副本会有所帮助,但是在你的情况下,你显然不希望这样做,因为在循环50个循环之后,容器将为空,如果再次尝试弹出,则会得到一个例外。

但要明确的是,你要达到什么行为(如果有)?也许你可以用while… 表达你的欲望?

i = 0
while i < len(some_list):
    print i,                         
    print some_list.pop(0),                  
    print some_list.pop(0)
python 2022/1/1 18:21:05 有298人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶