Skip to main content
 首页 » 编程设计

python之用另一个列表中相同索引处的值替换列表中的错误值

2025年05月04日14jiqing9006

我有两个列表,分别是下面的z和w:

z = [323, 493, 245, 542, 352, 463, 352] 
w = [300, -9999, 4343, 320, -9999, -9999, -9999] 

现在,我需要通过将所有 -9999 替换为相应的 z 值来更新 w 的值。如果我要打印 w,值将是

w = [300, 493, 4343, 320, 352, 463, 352] 

这是我对代码的理解:

w[w == -9999] = z 

但是我明白了

w = [[300, 493, 4343, 320, 352, 463, 352], -9999, 4343, 320, -9999, -9999, -9999] 

请您参考如下方法:

z = [323, 493, 245, 542, 352, 463, 352] 
w = [300, -9999, 4343, 320, -9999, -9999, -9999] 
 
for index,value in enumerate(w): 
    if value == -9999: 
        w[index] = z[index] 

输出

[300, 493, 4343, 320, 352, 463, 352] 

同样的想法可以应用于列表理解

>>> [z[index] if value == -9999 else w[index] for index, value in enumerate(w)] 
[300, 493, 4343, 320, 352, 463, 352]