Skip to main content
 首页 » 编程设计

python之如何在 python 中用百替换列表中的所有零

2025年05月04日10lhb25

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]