在python中,如何将列表中的所有零替换为100?

2024-06-08 12:39:26 发布

您现在位置:Python中文网/ 问答频道 /正文

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)

输出:

^{pr2}$

我的预期产出是

zero is present 
zero is present 
zero is present
zero is present 
zero is present 
[100, 100, 100, 100, 100]

Tags: inforifiselseremovelistprint
3条回答
for n in range(len(listzero)):
    if listzero[n] == 0:
        listzero[n] = 100

如果您不想创建另一个列表,这将就地编辑当前列表。在

使用enumerate的更具Python风格的变体:

^{pr2}$

你可以试试这个:

listzero = [0,0,0,0,0]
final_list = [i if i != 0 else 100 for i in listzero]

输出:

^{pr2}$
listzero.remove(0)

删除第一个0元素,但是

^{pr2}$

在列表末尾添加100(加上迭代时不应更改列表,除了项赋值,因为这会混淆循环内部索引)

其他答案显示了如何在循环中更改值,但是 你也可以使用列表理解来代替。它不替换列表,而是创建另一个列表,这里有一个惯用表达式(因为我们测试了0值),以便在0出现时设置为100(多亏了or运算符):

listzero = [0,0,100,200,300]
listzero = [x or 100 for x in listzero]

(我设置了不同的值来演示代码,并将其分配回原始列表名以“覆盖”它)

结果:

[100, 100, 100, 200, 300]

相关问题 更多 >