首页 > 解决方案 > 如何一个接一个地清空列表元素的列表?

问题描述

所以我有这个工作代码,但问题是,它没有按照我喜欢的方式工作。有人对此有想法吗?

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
[[], [], []]

标签: pythonlist

解决方案


您可以先将列表展平,然后找到最小值,然后将其作为列表进行[[],[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
[[], [], []]

推荐阅读