【问题标题】:Noughts and Crosses loopsNoughts 和 Crosses 循环
【发布时间】:2014-12-18 16:51:07
【问题描述】:

我一直在研究这个问题,我想我快到了。

问题:

编写一个函数 get_column(game, col_num),它接受一个合法的 3 x 3 零和交叉游戏,并返回一个 3 元素列表,其中包含列号 col_num 从上到下的值。你可以假设 col_num 在 0 到 2 的范围内。 [提示:您必须通过遍历行来构建返回值,并挑选出每行所需的元素。]

我的工作:

def get_column(game, col_num):
    x = []
    for i in game:
        for j in i:
            x.append(i[col_num])
    return x

测试:

column1 = get_column([['O', 'X', 'O'], ['X', '', ''], ['', '', '']], 0)

打印(列1)

结果:

['O', 'O', 'O', 'X', 'X', 'X', '', '', '']

想要的格式:

['O', 'X', ' '].

我很确定我得到了正确的答案,但是格式不正确。结果表明,我将“O”/“X”增加了两次。我想这与循环有关,但我可以检测到究竟是什么。

任何帮助将不胜感激!干杯!

【问题讨论】:

  • 您的实际问题是什么。您需要更明确地表达您想要帮助的内容。简单地说“任何帮助将不胜感激”不是什么大问题,所以我不知道该说什么来帮助你。
  • 我将运行代码的“结果”与最后的“想要的格式”进行了比较。我正处于编程的早期阶段,所以我仍在学习如何表达代码问题,尤其是在这里。很抱歉。尽管如此,其他人已经指出了这个错误并且它已经全部排序。但感谢亚历克斯 :)

标签: for-loop python-3.x nested-loops nested-lists


【解决方案1】:
def get_column(game, col_num):
    x = []
    for i in range(3):
        x.append(game[i][col_num])
    return x

【讨论】:

  • 代码返回给我:TypeError:列表索引必须是整数,而不是列表。第 4 行出错。但是,Jon Kiparsky 帮我解决了问题并帮助我运行。但是非常感谢安德鲁!:)
  • 我的错,将游戏更改为范围内(3)
【解决方案2】:
for i in game:
        for j in i:
            x.append(i[col_num])

我假设该游戏是三个列表的列表。在这种情况下,您的内部循环遍历 i 中的三个项目中的每一个,并为每个项目附加 i[col_num] 一次。 省略内部循环(for j in i),它应该可以正常工作。

【讨论】:

  • 工作得很好!谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-02-06
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多