sum=[1,2,3,4,5,6,7,8,9]
for figure in sum:
print(list(sum))
print(figure)
sum.remove(min(sum))
print(figure)
print(list(sum))
print('\n')
print(list(sum))
答案 0 :(得分:0)
如果要清除整个列表,请使用内置函数clear()
。下面是该方法的示例。
lis=[1,2,3,4,5,6,7,8,9]
print('printing original list',lis,sep=' : ')
# output printing original list : [1, 2, 3, 4, 5, 6, 7, 8, 9]
lis.clear()
print('printing new cleared list',lis,sep=' : ')
# output printing new cleared list : []
答案 1 :(得分:0)
在迭代时不能更改其长度。如果要打印最小项目并删除它,直到列表为空,则应在列表为空的情况下循环,如下所示:
sum=[1,2,3,4,5,6,7]
while sum:
print(min(sum))
sum.remove(min(sum))
输出:
1
2
3
4
5
6
7
更改可迭代长度的问题是python的解释器基本上将尝试根据列表上的前一个位置获取下一个元素。
例如,如果循环槽:
[a,b,c,d]
第一个项目为a
(index 0
上的项目)。 for循环的下一次迭代将尝试检索index 1
上的项目,但是如果删除a
,则ìndex1
将不再是b
,因为您当前列表看起来像这样;
[b,c,d]
并且index 1
现在为c
,在下一个迭代中跳过其他所有项目