所以我有这个工作代码,但问题是,它不是我喜欢的工作方式。 有人知道这个吗
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
[[], [], []]
修复
代码
输出
问题在于
min
函数覆盖包含空列表的列表,它将空列表作为索引返回,因为min
实际上是0
,这是最小的元素,因此您一直试图更改相同的索引,以使其清楚地看到:要修复它,您必须检查
min
上的合法元素(这意味着不是空元素),如此修改后的解决方案中所示:输出:
您可以首先将列表
[[],[2],[3]]
展平为[2, 3]
,然后找到最小值2
,然后将其作为列表[2]
进行搜索:哪个输出
相关问题 更多 >
编程相关推荐