Python 包含数字的列表

Python 包含数字的列表,python,list,Python,List,我试图写一个循环,检查列表中的某个数字是否没有出现。例如:如果我有清单 [[1,'O', 3], [4, 5, 6], [7, 8, 'X']] 我想写一个循环,检查数字2是否出现在其中一个列表中,如果没有,则要求您选择一个新数字。到目前为止,我一直坚持这一点: move = 2 for i in range(3): for j in range(3): if move not in board[i][j]: move = int(input("

我试图写一个循环,检查列表中的某个数字是否没有出现。例如:如果我有清单

[[1,'O', 3], [4, 5, 6], [7, 8, 'X']]
我想写一个循环,检查数字
2
是否出现在其中一个列表中,如果没有,则要求您选择一个新数字。到目前为止,我一直坚持这一点:

move = 2
for i in range(3):
    for j in range(3):
        if move not in board[i][j]:
            move = int(input("Number already taken. Pick another"))
但它不起作用。这似乎是一个相当简单的检查,但我不知道为什么它不会运行。有没有人有更好的建议如何检查这些列表中的给定数字


干杯

尝试使用任何功能

m = [[1,'O', 3], [4, 5, 6], [7, 8, 'X']]
while True:
    move = int(input('....'))
    if any(move in row for row in m):
        break
您可以使用:

更紧凑的版本:

numbers = (e for l in my_list for e in l)
move = 2 if 2 in numbers else int(input("Number already taken. Pick another"))

考虑到您的环境:

target = 2
list_of_lists = [[1,'O', 3], [4, 5, 6], [7, 8, 'X']]
我会用一条线做这样的事情:

True in [target in element for element in list_of_lists]

虽然Andrea的回答更简洁明了,但代码不起作用的原因是,您正在使用
不在
比较器中比较两个变量,而比较器中的
不在右边,它需要一个列表。更多信息请点击此处:

因此,要解决这个问题,要么删除内部循环并将
move
与内部列表进行比较,要么改用
等式
比较器。两个选项如下:

board = [[1,'O', 3], [4, 5, 6], [7, 8, 'X']]

move = 2
for i in range(3):
  if move not in board[i]:
    move = int(input("1: Number already taken. Pick another"))

for i in range(3):
    for j in range(3):
        if move == board[i][j]:
            move = int(input("2: Number already taken. Pick another"))

它怎么不起作用?什么是
?我们可以推断,但如果你能提供一个。顺便说一句,欢迎来到SO!请查看和。如果要使用“移入集合”进行操作,请使用集合而不是int/str。board[i][j]不是集合,否则,如果不移动,请更改board[i][j],您可以将
found=any([move in row for row in m])
替换为
found=any(移入row for row in m)
它可以工作!谢谢然而,我现在面临的问题是:这不是一个循环,因为在第一次尝试之后,您仍然可以输入错误的号码。我尝试“whilenotfound”,但随后我进入了一个无限循环。如何将其放入正确的循环中?
board = [[1,'O', 3], [4, 5, 6], [7, 8, 'X']]

move = 2
for i in range(3):
  if move not in board[i]:
    move = int(input("1: Number already taken. Pick another"))

for i in range(3):
    for j in range(3):
        if move == board[i][j]:
            move = int(input("2: Number already taken. Pick another"))