listzero = [0,0,0,0,0]
for q in listzero:
if (q==0):
print("zero is present ")
listzero.remove(0)
listzero.append(100)
else:
print("non zero list")
print(listzero)
输出:
zero is present
zero is present
zero is present
non zero list
non zero list
[0, 0, 100, 100, 100]
我的预期输出是
zero is present
zero is present
zero is present
zero is present
zero is present
[100, 100, 100, 100, 100]
请您参考如下方法:
listzero.remove(0)
移除第一个0元素,但是
listzero.append(100)
添加 100在列表的末尾(加上你不应该在迭代时更改列表的事实,除了项目分配,因为它会混淆循环内部索引)
其他答案展示了如何在循环中更改值,但是 您也可以改用列表理解。它不会替换列表,而是创建另一个列表,这里使用惯用表达式(因为我们测试了 0 值)设置为 100什么时候0出现(感谢 or 运算符):
listzero = [0,0,100,200,300]
listzero = [x or 100 for x in listzero]
(我设置了不同的值来演示代码,并将其分配回原始列表名称以“覆盖”它)
结果:
[100, 100, 100, 200, 300]
