python - 如何一个接一个地清空列表元素的列表?
问题描述
所以我有这个工作代码,但问题是,它没有按照我喜欢的方式工作。有人对此有想法吗?
import time
numlist1 =[[1],[2],[3]]
def listdecrement():
minVal=numlist1.index(min(numlist1)) # getting minimum value by index position
minVal_add = minVal+1
if minVal < minVal_add:
numlist1[minVal].clear() # deleting value in index with minimum value
time.sleep(0.2)
print("updating")
print(numlist1)
while True:
listdecrement()
输出 :
[[], [2], [3]]
updating
[[], [2], [3]]
updating
[[], [2], [3]]
所需的输出:
[[], [2], [3]]
updating
[[], [], [3]]
updating
[[], [], []]
解决方案
您可以先将列表展平,然后找到最小值,然后将其作为列表进行[[],[2],[3]]
搜索:[2, 3]
2
[2]
import time
numlist1 =[[1],[2],[3]]
def listdecrement():
flat_list = [item for sublist in numlist1 for item in sublist]
minVal=numlist1.index([min(flat_list)]) # getting minimum value by index position
minVal_add = minVal+1
if minVal < minVal_add:
numlist1[minVal].clear() # deleting value in index with minimum value
time.sleep(0.2)
print("updating")
print(numlist1)
while True:
try:
listdecrement()
except ValueError:
break
哪个输出
updating
[[], [2], [3]]
updating
[[], [], [3]]
updating
[[], [], []]