首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在嵌套python列表中查找元素,然后替换它

在嵌套python列表中查找元素,然后替换它
EN

Stack Overflow用户
提问于 2020-07-07 10:34:12
回答 6查看 130关注 0票数 0

我有一个嵌套的列表,我试图用其他的东西替换列表中的某个元素。

代码语言:javascript
运行
复制
  NL = [[1,2,3],
       [4,5,6],
       [7,8,9]];

现在,我需要更新列表,假设用户希望将NL1上的元素(即5)更改为“X”。

NL将更新为

代码语言:javascript
运行
复制
  NL = [[1,2,3],
       [4,'X',6],
       [7,8,9]];`

我很难找到元素的位置,然后改变它。任何帮助都是非常感谢的。

谢谢

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2020-07-07 10:44:31

使用numpy

代码语言:javascript
运行
复制
NL = np.array(NL)

mask = np.where(NL == 5)
NL[mask] = 10

代码语言:javascript
运行
复制
array([[ 1,  2,  3],
       [ 4, 10,  6],
       [ 7,  8,  9]])

Solution2:

代码语言:javascript
运行
复制
def get_index(num, List):
    for row, i in enumerate(List):
        if num in i:
            return row, i.index(num)
    return -1

idx = get_index(5,NL)
if idx>0:
    NL[idx[0]][idx[1]] = 7

代码语言:javascript
运行
复制
[[1, 2, 3], [4, 7, 6], [7, 8, 9]]
票数 0
EN

Stack Overflow用户

发布于 2020-07-07 10:35:41

使用两个索引,一个用于所需的嵌套列表,一个用于所需嵌套列表的哪个元素。

因此,在本例中,您需要第二个列表的第二个元素:

代码语言:javascript
运行
复制
NL[1][1]='X'

输出:

代码语言:javascript
运行
复制
[[1, 2, 3], [4, 'X', 6], [7, 8, 9]]
票数 0
EN

Stack Overflow用户

发布于 2020-07-07 10:41:45

假设您需要找到元素5,并希望用10替换它。我们遍历外部列表,然后遍历每个内部列表的元素。一旦我们找到我们寻找的元素,我们就可以用索引来替换它。一旦找到匹配的元素,我们就使用枚举来拥有索引。

下面的代码替换所有匹配的元素(所有出现的5)。

代码语言:javascript
运行
复制
NL = [[1,2,3], [4,5,6], [7,8,9]]

print(NL)  # prints: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

for i, sublist in enumerate(NL):
    for y, element in enumerate(sublist):
        if element == 5:
            NL[i][y] = 10

print(NL)  # prints: [[1, 2, 3], [4, 10, 6], [7, 8, 9]]           
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62773299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档