问题是:
编写一个函数get_column(game, col_num)
,该函数如上所述进行合法的3 x 3的不规则和交叉游戏,并返回一个3元素列表,其中包含列号col_num从上到下的值。您可以假设col_num的范围在0到2之间。
提示:由于无棋和交叉总是在3 x 3的网格上进行,因此您不需要处理一般的n x m网格。只需显式选择所需的行和列元素就足够了,因此您实际上不需要为此问题循环。但是,欢迎您尝试使用循环为自己做更多练习。
因此,我想从列表列表中检索函数中提到的任何列。
下面的代码是我尝试过的
def get_column(game, col_num):
"""returns a 3-element list containing the values from column number
col_num, top to bottom"""
j = col_num
result = []
for i in game:
result.append(game[i][j])
return result
答案 0 :(得分:0)
我不会尝试为您解决运动,但是我可以告诉您为什么会出错。
您的循环
for i in game:
遍历3x3列表列表。因此它将循环3次,即
i = ['O', 'X', 'O'] # pass 1
i = ['X', '',''] # pass 2
i = ['X', '',''] # pass 3
所以我是一个清单。然后,您尝试使用i在此语句中为列表编制索引
result.append(game[i][j])
但是列表必须使用单个整数(o,1或2)或切片(例如0:1、1:2等)进行索引。