Как проверить, существуют ли только два определенных значения в списке - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь сделать игру ti c -ta c -toe с python. Я пытался создать функцию, которая показала бы в ie.

Я пытаюсь создать функцию, которая проверяет вложенный список, чтобы увидеть, есть ли только значение «X» или «O», и возвращает True, если это так.

board = [["O", "O", "O"], ["X", "O", "X"], ["O", "X" "," X "]]

Я бы хотел, чтобы это возвращало True.

board = [[1," O "," O "], [" X "," O " , "X"], ["O", "X", "X"]] *

Я бы хотел, чтобы это возвращало False.

Я могу понять, как проверить весь список чтобы увидеть, существует ли одно значение, но я не знаю, как проверить значения двух типов.

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

Вы можете использовать ключевое слово in , чтобы проверить наличие элемента в списке. Он также работает с вложенными списками, если вы предоставляете список в качестве элемента для проверки:

board = [["X","O","X"], ["O","O","O"], ["O","O","X"]]

if ["X","X","X"] in board:
  print("yes")

печатает "да".

Чтобы проверить оба условия, используйте или оператор:

board = [["X","O","X"], ["O","O","O"], ["O","O","X"]]

if ["X","X","X"] in board or ["O","O","O"] in board:
  print("yes")
0 голосов
/ 30 марта 2020

Вы можете использовать itertools и set operation, например:

from itertools import chain

def check_board(your_list):
    tmp_set = set(chain(*your_list))
    return len(s - set("OX")) == 0

...