0

ここでちょっと困ったこと。私の目標は、ゲームボードの列から数字を読み取り、これらの数字を特定のリストとして出力することです。私はリストの経験があまりなく、概念を適切に把握していないため、リストを機能させるのに苦労しています。これまでのところ、私が集めることができたのはこれだけでした:

def getColumn ():
    for i in range (0, 9):
        row = datalist[i]
        column = row[x]
        column.append[i]

正しく動作していないようです、誰かが理由を指摘できますか? とても感謝しております!

ありがとう!

4

3 に答える 3

6

ビルトインを使用するためにこのようなことをしてみてください

rows = [[1,2,3],[4,5,6],[7,8,9]]

cols = zip(*rows)

print cols[0]  #column 0 ....

またはより良い使用numpy

import numpy as np

my_board = [[1,2,3],[4,5,6],[7,8,9]]
np_ar   = np.array(my_board)

print np_ar[:,2]  #print column 2 ..
于 2012-11-21T00:45:52.770 に答える
2

これはうまくいくでしょうか?

col = 1
column1 = [row[col] for row in datalist]
于 2012-11-21T00:52:51.520 に答える
2

元のコードを微調整したバージョンは次のとおりです。

datalist = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

def getColumn(col_num, data):
    column = []
    for i in range (0, len(data)):
        row = data[i]
        column.append(row[col_num])
    return column

これは次のようになります。

getColumn(1, datalist)
Out[9]: [2, 5, 8]

元のコードに関するいくつかの問題:

  • getColumnどの列が必要かを判断する方法がありませんでした。これを関数の引数にする必要があります。
  • getColumnと呼ばれるグローバル変数があることに依存していましたdatalist。データを引数として渡す方が安全です。
  • datalist正確に9行が必要でした。そうしないと、エラーが発生したり、列全体が返されなかったりします。
于 2012-11-21T00:55:57.880 に答える