Skip to main content
 首页 » 编程设计

python之通过双数组进行迭代和替换

2025年05月04日17findumars

有这个数组:

a = [1, None, 2], [3, 4, 5], [6, None, 7] 

我需要将 None 的值替换为 0。我的第一个实现是遍历数组,但我想在一行中完成。

我试过类似的方法,但没有成功:

a = [0 if value is None else value for value in a[i][1] for i in range(len(a))] 

显然是行不通的,什么是正确的方法?

编辑:我不想触及其他位置,只是数组中每个元素的第二个位置。

这个:

a = [None, None, 2], [3, 4, 5], [6, None, 7] 

将返回这个:

a = [None, 0, 2], [3, 4, 5], [6, 0, 7] 

请您参考如下方法:

使用或:

>>> a = [[1, None, 2], [3, 4, 5], [6, None, 7]] 
>>> [[x or 0 for x in l] for l in a] 
[[1, 0, 2], [3, 4, 5], [6, 0, 7]] 

或者如果您只想评估第二个元素:

>>> a = [[1, None, 2], [3, 4, 5], [6, None, 7]] 
>>> [[l[0], l[1] or 0] + l[2:] for l in a] 
[[1, 0, 2], [3, 4, 5], [6, 0, 7]]