在多维列表中查找和替换元素(python)
与这个问题类似: 但是使用多维数组。例如,我想用0替换所有N:在多维列表中查找和替换元素(python),python,list,multidimensional-array,replace,find,Python,List,Multidimensional Array,Replace,Find,与这个问题类似: 但是使用多维数组。例如,我想用0替换所有N: list = [['N', 0.21], [-1, 6.6], ['N', 34.68]] 我想将其更改为: list = [[0, 0.21], [-1, 6.6], [0, 34.68]] 您可以使用嵌套列表: l = [['N', 0.21], [-1, 6.6], ['N', 34.68]] new_l = [[0 if b == 'N' else b for b in i] for i in l] 输出: [
list =
[['N', 0.21],
[-1, 6.6],
['N', 34.68]]
我想将其更改为:
list =
[[0, 0.21],
[-1, 6.6],
[0, 34.68]]
您可以使用嵌套列表:
l = [['N', 0.21], [-1, 6.6], ['N', 34.68]]
new_l = [[0 if b == 'N' else b for b in i] for i in l]
输出:
[[0, 0.21], [-1, 6.6], [0, 34.68]]
您可以使用嵌套列表:
l = [['N', 0.21], [-1, 6.6], ['N', 34.68]]
new_l = [[0 if b == 'N' else b for b in i] for i in l]
输出:
[[0, 0.21], [-1, 6.6], [0, 34.68]]
试试这个:
for l in list:
while 'N' in l:
l[l.index('N')]=0
试试这个:
for l in list:
while 'N' in l:
l[l.index('N')]=0
不要将列表用作变量名:
list1 =[['N', 0.21],
[-1, 6.6],
['N', 34.68]]
[j.__setitem__(ii,0) for i,j in enumerate(list1) for ii,jj in enumerate(j) if jj=='N']
print(list1)
输出:
[[0, 0.21], [-1, 6.6], [0, 34.68]]
不要将列表用作变量名:
list1 =[['N', 0.21],
[-1, 6.6],
['N', 34.68]]
[j.__setitem__(ii,0) for i,j in enumerate(list1) for ii,jj in enumerate(j) if jj=='N']
print(list1)
输出:
[[0, 0.21], [-1, 6.6], [0, 34.68]]
我想我已经找到了一种方法来处理任意维度的数组,即使数组中的元素不都具有相同的维度,例如:
array=[
[
['N',2],
[3,'N']
],
[
[5,'N'],
7
],
]
首先,定义一个函数来检查变量是否可iterable,例如:
然后,使用以下递归函数将“N”替换为0:
示例输入的输出:
print(array)
print(remove_N(array))
收益率:
[[['N', 2], [3, 'N']], [[5, 'N'], 7]]
[[[0, 2], [3, 0]], [[5, 0], 7]]
你觉得怎么样?我想我已经找到了一种方法,可以用任意维度的数组来实现这一点,即使数组中的元素不都具有相同的维度,例如:
array=[
[
['N',2],
[3,'N']
],
[
[5,'N'],
7
],
]
首先,定义一个函数来检查变量是否可iterable,例如:
然后,使用以下递归函数将“N”替换为0:
示例输入的输出:
print(array)
print(remove_N(array))
收益率:
[[['N', 2], [3, 'N']], [[5, 'N'], 7]]
[[[0, 2], [3, 0]], [[5, 0], 7]]
您认为如何?尝试列表理解?尝试列表理解?当子列表中有多个“N”时会发生什么?当子列表中有多个“N”时会发生什么?