最终答案
我能够使用for循环使其工作:问题在pop(i)范围内。它只需要少一个,因为它从0开始。
for i in range(0,len(list_ex1)):
value=list_ex1.pop((len(list_ex1)-1))
list_ex2.append(value)
问题
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指数超出范围
>>> print(list_ex1)
['bbb', 111, 333]
>>> print(list_ex2)
['aaa', 'ccc', 222, 'Hello World']
我不明白如何使用list_ex1
循环弹出来自for
的所有值。
旧更新
此代码通过从列表中获取最后一个值来工作。
i = 0
while len(list_ex1) != 0:
value = list_ex1.pop(len(list_ex1)-1)
list_ex2.append(value)
i+=1
发布于 2022-03-04 23:09:57
循环中的迭代器变量将超出范围,因为您正在修改列表的长度,因此不能使用它访问列表。而不是做:
value = list_ex1.pop(i)
做:
value = list_ex1.pop(0)
这只会弹出前一项,一旦该前端项弹出,下一项将成为索引0处的新项,对列表的长度执行此操作,列表中的每个项都将被弹出。
https://stackoverflow.com/questions/71358108
复制相似问题