擅长:python、mysql、java
<p>问题在于<code>min</code>函数覆盖包含空列表的列表,它将空列表作为索引返回,因为<code>min</code>实际上是<code>0</code>,这是最小的元素,因此您一直试图更改相同的索引,以使其清楚地看到:</p>
<pre><code>list_to_check = [[],[2],[3]]
min_index =list_to_check.index(min(list_to_check))
print(min_index)
# returns 0
</code></pre>
<p>要修复它,您必须检查<code>min</code>上的合法元素(这意味着不是空元素),如此修改后的解决方案中所示:</p>
<pre><code>import time
numlist1 =[[1],[2],[3]]
def listdecrement():
if (len([item for item in numlist1 if len(item)])>0):
minVal=numlist1.index(min(item for item in numlist1 if len(item)>0)) # getting minimum value by index position
else:
return
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()
</code></pre>
<p>输出:</p>
<pre><code>updating
[[], [2], [3]]
updating
[[], [], [3]]
updating
[[], [], []]
</code></pre>