首页 > 解决方案 > 将矩阵负值更改为绝对值

问题描述

我怎样才能将负值更改为正值。我必须编写一个程序,所以没有返回值或打印

我有一个矩阵:


  [-5,-8,-8,-7,-8],
  [-4,-2,-4,-8,-9],
  [-4,-2,-5,-8,-7]

我希望矩阵有正数。所以


  [5,8,8,7,8],
  [4,2,4,8,9],
  [4,2,5,8,7]

我有这个:

def procedure(matrix):
   map(abs, matrix)

但它根本不起作用。

标签: pythonlist

解决方案


您有正确的想法,但map()将在矩阵的每一行上进行操作,因为矩阵是列表的列表。相反,您需要某种循环来将该abs()函数应用于每行中的每个元素。我会建议一个列表理解,它具有返回 alist而不是 map 对象的额外优势。

def procedure(matrix):
    return [[abs(x) for x in row] for row in matrix]

测试:

>>> m = [
...   [-5,-8,-8,-7,-8],
...   [-4,-2,-4,-8,-9],
...   [-4,-2,-5,-8,-7]
... ]
>>> procedure(m)
[
  [5, 8, 8, 7, 8],
  [4, 2, 4, 8, 9],
  [4, 2, 5, 8, 7]
]

推荐阅读