Sri*_*ran 1 python for-loop list python-3.x
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)
Run Code Online (Sandbox Code Playgroud)
输出:
zero is present
zero is present
zero is present
non zero list
non zero list
[0, 0, 100, 100, 100]
Run Code Online (Sandbox Code Playgroud)
我的预期输出是
zero is present
zero is present
zero is present
zero is present
zero is present
[100, 100, 100, 100, 100]
Run Code Online (Sandbox Code Playgroud)
listzero.remove(0)
Run Code Online (Sandbox Code Playgroud)
删除第一个 0 元素,但是
listzero.append(100)
Run Code Online (Sandbox Code Playgroud)
100在列表末尾添加(加上迭代时不应该更改列表的事实,除了项目分配,因为它会混淆循环内部索引)
其他答案显示了如何更改循环内的值,但您也可以使用列表理解来代替。它不会替换列表,而是创建另一个列表,这里使用惯用表达式(因为我们测试了值0)来设置100何时0出现(感谢操作or符):
listzero = [0,0,100,200,300]
listzero = [x or 100 for x in listzero]
Run Code Online (Sandbox Code Playgroud)
(我设置了不同的值来演示代码,并将其分配回原始列表名称以“覆盖”它)
结果:
[100, 100, 100, 200, 300]
Run Code Online (Sandbox Code Playgroud)