有这个数组:
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]]
