0

ハードコードされた2次元リストの列の合計を見つける関数を作成したので、ハードコードされた列の合計の値のみを出力しようとしています。基本的に列インデックスを追加し、それらの合計を空のリストに追加しました。それから私はその空のリストを返しました。空のリストの値を印刷しようとすると、エラーが発生します。

    #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

質問のコードは少し順不同ですが、それを修正してすべてのインスタンスを関数内に変更すると、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
于 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 に答える