Python 矩阵的和,偶或奇

Python 矩阵的和,偶或奇,python,Python,此函数接收表示为行列表的数字矩阵,其中每一行依次为一个列表。假设它是一个正方形矩阵:所有行的长度相同,每行中的行数与元素数相同。还假设矩阵的维数至少为2×2(即矩阵至少有2行,每行有2个元素) 函数应该返回一个列表,列表中的元素数与行数相同。结果列表中的元素i应具有第i行中的值之和 例如,如果矩阵是 1 2 3 10 20 30 100 200 300 然后此函数应返回列表[6,60600] 就是, addValuesInAllRows([1,2,3],[10,20,30],[10

此函数接收表示为行列表的数字矩阵,其中每一行依次为一个列表。假设它是一个正方形矩阵:所有行的长度相同,每行中的行数与元素数相同。还假设矩阵的维数至少为2×2(即矩阵至少有2行,每行有2个元素) 函数应该返回一个列表,列表中的元素数与行数相同。结果列表中的元素i应具有第i行中的值之和

例如,如果矩阵是

1   2   3
10  20  30
100 200 300
然后此函数应返回列表
[6,60600]

就是,
addValuesInAllRows([1,2,3],[10,20,30],[100200300])
应返回
[6,60600]


这不是很相似,但是您如何单独汇总列表

matrix = [ [1,2,3], [10,20,30], [100,200,300] ]
print [sum(row) for row in zip(*matrix)]
>>> def addValuesInAllCols(arr):
      return [sum(x) for x in zip(*arr)]

>>> addValuesInAllCols( [ [1,2,3], [10,20,30], [100,200,300] ] )
[111, 222, 333]
>>> map(sum, [ [1,2,3], [10,20,30], [100,200,300] ] )
[6, 60, 600]
行总数

>>> def addValuesInAllCols(arr):
      return [sum(x) for x in zip(*arr)]

>>> addValuesInAllCols( [ [1,2,3], [10,20,30], [100,200,300] ] )
[111, 222, 333]
>>> map(sum, [ [1,2,3], [10,20,30], [100,200,300] ] )
[6, 60, 600]

列的总和

>>> def addValuesInAllCols(arr):
      return [sum(x) for x in zip(*arr)]

>>> addValuesInAllCols( [ [1,2,3], [10,20,30], [100,200,300] ] )
[111, 222, 333]
>>> map(sum, [ [1,2,3], [10,20,30], [100,200,300] ] )
[6, 60, 600]
行总数

>>> def addValuesInAllCols(arr):
      return [sum(x) for x in zip(*arr)]

>>> addValuesInAllCols( [ [1,2,3], [10,20,30], [100,200,300] ] )
[111, 222, 333]
>>> map(sum, [ [1,2,3], [10,20,30], [100,200,300] ] )
[6, 60, 600]
还有一个选择:

from operator import itemgetter

matrix = [ [1,2,3], [10,20,30], [100,200,300] ]

def addValuesInAllCols(arr):
    return map(sum, [map(itemgetter(i), arr) for i in range(len(a))])
在这里,可以将其改写为一个简单的for。例如:

[范围(len(a))内i的映射(itemgetter(i),arr)]
与:

result = []
for i in range(len(a)):
    tmp = []
    for row in a:
        tmp.append(row[i])
    result.append(tmp)
根据新测试编辑:

def addValuesInAllCols(arr):
    return map(sum, arr)
或没有地图:

def addValuesInAllCols(arr):
    return [sum(row) for row in arr]
还有一个选择:

from operator import itemgetter

matrix = [ [1,2,3], [10,20,30], [100,200,300] ]

def addValuesInAllCols(arr):
    return map(sum, [map(itemgetter(i), arr) for i in range(len(a))])
在这里,可以将其改写为一个简单的for。例如:

[范围(len(a))内i的映射(itemgetter(i),arr)]
与:

result = []
for i in range(len(a)):
    tmp = []
    for row in a:
        tmp.append(row[i])
    result.append(tmp)
根据新测试编辑:

def addValuesInAllCols(arr):
    return map(sum, arr)
或没有地图:

def addValuesInAllCols(arr):
    return [sum(row) for row in arr]

我不能使用导入的函数,但是我可以看到这是怎么回事,但是map做什么呢?我使用了你的替代函数,没有map,在上面的例子中,我得到了[[1,10,100],[2,20,200],[3,30,300]],而不是[6,60,600]@user1790201该示例是你第一个更改的示例。对于新的测试,同样的方法是“return[sum(row)for row in arr]”@user1790201如果我的帖子有帮助的话,欢迎你-投票)))我不能使用导入的函数,但是我可以看到这是怎么回事,但是map做了什么?我使用了你的替代函数而没有map,对于上面的例子,我得到了[[1,10100],[2,20,200],[3,30,300]]与[6,60,600]@user1790201不同,该示例是您更改的第一个示例。对于新的测试也一样是“return[sum(row)for row in arr]”@user1790201如果我的帖子对你有帮助的话,欢迎你-投它一票。)你的问题更改太多了,现在所有这些答案都无效。我不明白如何将整行相加,因为我一直在想error@user1790201-阅读人们为你写的答案,你的两个问题都有解决方案。或者我指的是将单个列表放在一起,而不是全部返回。你的问题更改太多,现在所有这些答案都无效。我不知道如何将整行添加到一起,因为我一直在error@user1790201-阅读人们为你写的答案,你的两个问题都有解决方案。或者我是说,把单个列表放在一起,而不是把它们全部返回