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必须恰好有九行,否则您会收到错误或无法返回完整的列。
于 2012-11-21T00:55:57.880 回答