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

Python 通过双数组进行迭代和替换,python,Python,具有此阵列: a = [1, None, 2], [3, 4, 5], [6, None, 7] 我需要替换0的“无”值。我的第一个实现是遍历数组,但我想在一行中完成 我试过这样的方法,但没有成功: a = [0 if value is None else value for value in a[i][1] for i in range(len(a))] 显然是不起作用的,什么是正确的方法 编辑:我不想触摸其他位置,只是数组中每个元素的第二个位置 这: 将返回此文件: a = [None,

具有此阵列:

a = [1, None, 2], [3, 4, 5], [6, None, 7]
我需要替换0的“无”值。我的第一个实现是遍历数组,但我想在一行中完成

我试过这样的方法,但没有成功:

a = [0 if value is None else value for value in a[i][1] for i in range(len(a))]
显然是不起作用的,什么是正确的方法

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

这:

将返回此文件:

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

使用嵌套列表:

>>> a = [[1, None, 2], [3, 4, 5], [6, None, 7]]
>>> [[0 if x is None else x for x in sublist] for sublist in a]
[[1, 0, 2], [3, 4, 5], [6, 0, 7]]
或者是另一种方法,即只查看每个子列表中的第二项:

>>> [x[:1] + ([0] if x[1] is None else x[1:2]) + x[2:] for x in a]
[[1, 0, 2], [3, 4, 5], [6, 0, 7]]

使用嵌套列表:

>>> a = [[1, None, 2], [3, 4, 5], [6, None, 7]]
>>> [[0 if x is None else x for x in sublist] for sublist in a]
[[1, 0, 2], [3, 4, 5], [6, 0, 7]]
或者是另一种方法,即只查看每个子列表中的第二项:

>>> [x[:1] + ([0] if x[1] is None else x[1:2]) + x[2:] for x in a]
[[1, 0, 2], [3, 4, 5], [6, 0, 7]]

嵌套列表理解可以做到这一点:

>>> a = [1, None, 2], [3, 4, 5], [6, None, 7]
>>> [[c if c is not None else 0 for c in b] for b in a]
[[1, 0, 2], [3, 4, 5], [6, 0, 7]]
>>>

嵌套列表理解可以做到这一点:

>>> a = [1, None, 2], [3, 4, 5], [6, None, 7]
>>> [[c if c is not None else 0 for c in b] for b in a]
[[1, 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]]
使用

>>> 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]]

我只需要评估aI第二个位置的值,假设你是指每个子列表的第二个位置,我的编辑应该在这种情况下工作。我只需要评估aI第二个位置的值,假设你是指每个子列表的第二个位置,我的编辑应该在这种情况下工作。你的嵌套有多深?就是这样,不是更深你的嵌套能有多深?只是,不是更深我只需要评估aI第二位置的值只需要评估aI第二位置的值只需要评估aI第二位置的值只需要评估aI第二位置的值只需要评估a第二位置的值