Python - 如何在多维数组中查找项目?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (203)

我尝试了一些方法,但似乎没有一种方法适合我。

board = [[0,0,0,0],[0,0,0,0]]

if not 0 in board:
     # the board is "full"

然后我尝试了:

if not 0 in board[0] or not 0 in board[1]:
    # the board is "full"

这些方法都不起作用,尽管第二种方法通常会让阵列填满更多。(我编写代码来随机填充数组)。

提问于
用户回答回答于

您需要遍历列表的所有索引,以查看元素是否是嵌套列表中的某个值。您可以简单地遍历内部列表并检查元素的存在,例如:

if not any(0 in x for x in board):
    pass  # the board is full

any()当遇到包含0in 的元素时,Using 将用作短暂停止,因此您不需要迭代其余元素。

用户回答回答于

另一个尝试使用chainfrom itertools(这种方式适用于多行):

from itertools import chain

board = [[0,0,0,0],[0,0,0,0]]

def find_in_2d_array(arr, value):
    return value in chain.from_iterable(arr)

print(find_in_2d_array(board, 0))
print(find_in_2d_array(board, 1))

打印:

True
False

扫码关注云+社区

领取腾讯云代金券