首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >超出范围的pop索引: For循环

超出范围的pop索引: For循环
EN

Stack Overflow用户
提问于 2022-03-04 23:00:55
回答 1查看 220关注 0票数 0

最终答案

我能够使用for循环使其工作:问题在pop(i)范围内。它只需要少一个,因为它从0开始。

代码语言:javascript
运行
复制
for i in range(0,len(list_ex1)):
    value=list_ex1.pop((len(list_ex1)-1))
    list_ex2.append(value)

问题

代码语言:javascript
运行
复制
list_ex1 = ['aaa', 'bbb', 'ccc', 111, 222, 333, 'Hello World']
list_ex2 = []

for i in range(len(list_ex1)):
    value = list_ex1.pop(i)
    list_ex2.append(value)

pop指数超出范围

代码语言:javascript
运行
复制
>>> print(list_ex1)
['bbb', 111, 333]
>>> print(list_ex2)
['aaa', 'ccc', 222, 'Hello World']

我不明白如何使用list_ex1循环弹出来自for的所有值。

旧更新

此代码通过从列表中获取最后一个值来工作。

代码语言:javascript
运行
复制
i = 0
while len(list_ex1) != 0:
    value = list_ex1.pop(len(list_ex1)-1)
    list_ex2.append(value)
    i+=1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-04 23:09:57

循环中的迭代器变量将超出范围,因为您正在修改列表的长度,因此不能使用它访问列表。而不是做:

代码语言:javascript
运行
复制
value = list_ex1.pop(i)

做:

代码语言:javascript
运行
复制
value = list_ex1.pop(0)

这只会弹出前一项,一旦该前端项弹出,下一项将成为索引0处的新项,对列表的长度执行此操作,列表中的每个项都将被弹出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71358108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档