在python中如何替换列表列表中的元素

在python中如何替换列表列表中的元素,python,Python,我有一个列表,如下所示 bo=['7','8','9',['4','5','6',['1','2','3']] 我想要一个代码来改变一个元素,如果它被找到了。例如,如果9在嵌套列表中,我想要9被改变为字母“x”,而电路板将像这样 bo=['7','8','x'],['4','5','6'],['1','2','3']] 请知道我在入门级。不知道lambda或numpy。使用列表理解 def replace_num(lst, find_num, new_num): return [[new_n

我有一个列表,如下所示 bo=['7','8','9',['4','5','6',['1','2','3']] 我想要一个代码来改变一个元素,如果它被找到了。例如,如果9在嵌套列表中,我想要9被改变为字母“x”,而电路板将像这样 bo=['7','8','x'],['4','5','6'],['1','2','3']] 请知道我在入门级。不知道lambda或numpy。

使用列表理解

def replace_num(lst, find_num, new_num):
  return [[new_num if x == find_num else x for x in sublist] for sublist in lst]

lst = [[1,2,3],[4,5,6]]
print(replace_num(lst, 5, 25))

# Output: [[1, 2, 3], [4, 25, 6]]

可能比其他解决方案慢,但您可以只编写一个循环:

b=[[1,2,3,4,5],[3,4,5,6,7]]
test=4
new=2
for i in range(len(b)):
    for j in range(len(b[i])):
        if b[i][j] ==test:
            b[i][j]=new
或者如果您使用numpy:

import numpy as np
a=np.array([[1,2,3,4,5],[1,2,3,46,7]])
a[a==4]=2

最简单的解决方案是使用两个for循环。。你已经试过了吗?嗨,欢迎来到SO!虽然此代码可能会回答该问题,但提供有关此代码为什么和/或如何回答该问题的附加上下文可提高其长期价值。
import numpy as np
a=np.array([[1,2,3,4,5],[1,2,3,46,7]])
a[a==4]=2