python - 将矩阵负值更改为绝对值
问题描述
我怎样才能将负值更改为正值。我必须编写一个程序,所以没有返回值或打印
我有一个矩阵:
[-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)
但它根本不起作用。
解决方案
您有正确的想法,但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]
]
推荐阅读
- arrays -
在另一个循环中循环一个 ngfor 循环 - mysql - MySQL大表性能优化
- c# - 如何使用自己的 DataTable 类“Linq to DataTable”
- html - 一个部分应该以 h1 还是 h2 开头?
- reactjs - redux 没有更新组件中的状态
- c - C中的程序将UPC代码的最后一位与计算值进行比较并检查其是否有效?
- nstableview - 删除 Big Sur 中的 NSTableView 浮动组行下划线
- binary - 相同的 elixir 二进制模式匹配在命令行上有不同的表示
- angular - 如何与其 azure(asp.net core) 后端保持角度同步?
- angular - 成功登录后关闭 MatDialog