使用count()但无法获得正确的输出

时间:2019-04-20 08:37:17

标签: python-3.x

我正在尝试用python构建井字游戏,在这个阶段我正在寻找横向赢家。程序中的所有内容目前都经过硬编码。 根据目前的游戏列表,第一行应该是获胜者,但输出错误。

我试图遍历该行中的每个元素,但随后遇到了这个count(),但似乎不起作用

game=[[1,1,1],
      [0,2,0],
      [2,2,0 ]]

def win(current_game):
    for row in current_game:
        print(row)
        if (row.count(row[0]==len(row))==True):
            print("winner", row[0])

win(game)

我得到的输出是:-

[1, 1, 1]
[0, 2, 0]
[2, 2, 0]
winner 2

,但是正确的输出应该是:-

[1,1,1]
winner 1
[0,2,0]
[2,2,0]

1 个答案:

答案 0 :(得分:4)

据我了解,row.count(obj)返回obj对象中row发生了多少次。 Reference

因此,row[0]==len(row)是一个比较并返回truefalse在这里没有意义。使用row.count(row[0]==len(row)),您要检查true中是否出现falserow而不是数字。

您要检查的是列表中的第一项是否出现了3次(或列表的长度)。

def win(current_game):
    for row in current_game:
        print(row)
        if (len(row) == row.count(row[0])):
            print("winner", row[0])