如何调用函数来处理列表

时间:2013-10-13 03:42:29

标签: python

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

    #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

2 个答案:

答案 0 :(得分:0)

您的问题中的代码有点乱,但如果您修复了该问题并将list中的所有实例更改为a,您将设置该函数:

#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

答案 1 :(得分: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循环也不是必需的。