0

我创建了一个函数来查找硬编码二维列表的列总和,所以我试图让它只打印出硬编码列总和的值。我基本上添加了列索引并将它们的总和添加到一个空列表中。然后我返回了那个空列表。当我尝试打印空列表的值时出现错误,有什么帮助吗?

    #Function that returns column sums for list1

    def columnsumsfunction(a) :

       rowsize = len(list1)
       columnsize = len(list1[0])
       csum =[]
       c = 0
       while c < columnsize :
          totalsum = 0
          r = 0
          while r < rowsize :
             mysum = list1[r][c]
             totalsum = totalsum + mysum
             r = r + 1
          c = c + 1
          csum.append(totalsum)
       return csum


    for a in list1 :
       csum = columnsumsfunction(a)
       print csum



#main
list1 = [[1, 2, 3],
         [4, 5, 6] ]

我只是不太确定如何调用函数来处理 list1。李

我只是想调用函数来打印

5 7 9
4

2 回答 2

0

您问题中的代码有点乱,但是如果您修复它并将函数中的所有实例更改为lista您将被设置:

#Function that returns column sums for list1

def columnsumsfunction(a) :
   rowsize = len(a)
   columnsize = len(a[0])
   csum =[]
   c = 0
   while c < columnsize :
      totalsum = 0
      r = 0
      while r < rowsize :
         mysum = a[r][c]
         totalsum = totalsum + mysum
         r = r + 1
      c = c + 1
      csum.append(totalsum)
   return csum

list1 = [[1, 2, 3],
         [4, 5, 6] ]

csum = columnsumsfunction(list1)
print csum
于 2013-10-13T03:54:55.383 回答
0
def columnsumsfunction():
    index = 0
    rowsize = len(list1)
    columnsize = len(list1[0])
    csum =[]
    c = 0
    while c < columnsize :
        totalsum = 0
        r = 0
        while r < rowsize :
            mysum = list1[r][c]
            totalsum = totalsum + mysum
            r = r + 1
        c = c + 1
        csum.append(totalsum)
    return csum

#main
list1 = [[1, 2, 3],
         [4, 5, 6] ]

csum = columnsumsfunction()
print csum

如果您尝试打印 5 7 9 此代码可以正常工作。
你根本不需要 list2 。定义 list1 后调用 columnsfunction()。
for 循环也不是必需的。

于 2013-10-13T04:08:10.400 回答