【问题标题】:Python replace elements = key in 2D arrayPython替换元素=二维数组中的键
【发布时间】:2021-08-23 03:07:20
【问题描述】:

假设存在一个包含值的二维列表 [[0, 0], [1, 0]]

有没有办法循环遍历它,例如将每个 0 替换为 2(例如)?

我的第一种方法如下,但虽然 l 的值已更新,但列表中的条目却没有。有什么想法吗?

for k in g:
     for l in k:
          if not l == 1:
               l = 2

【问题讨论】:

    标签: python list loops replace swap


    【解决方案1】:

    您可以使用列表理解:

    lst = [[0, 0], [1, 0]]
    
    lst = [[2 if val == 0 else val for val in subl] for subl in lst]
    print(lst)
    

    打印:

    [[2, 2], [1, 2]]
    

    【讨论】:

      【解决方案2】:

      为循环变量赋值会更新它们的值,但不会修改原始列表。要修改列表,您需要直接引用其元素。下面的代码执行此操作,并将列表中的所有 0 替换为 2。

      l = [[0, 0], [1, 0]]
      for i in range(len(l)): 
          for j in range(len(l[i])): 
              if l[i][j] == 0: 
                  l[i][j] = 2
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-15
        • 2018-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多