python - 检查二维列表中的每个元素

标签 python list

基本问题:

我正在尝试检查这个二维列表中的每个元素

board = [['B', 'B', 'B', ' '],['B', 'B', 'B', 'B'],['B', 'B', 'B', 'B']]

如果至少有一个元素 == ' '

然后我想让我的函数返回 True 否则,如果它们都不是 ' ',则返回 False。

这是我目前所拥有的,但它在循环的第一次迭代时停止,认为字符串中的第一个元素是 B 然后将返回 False 而不会到达第一个列表的第 4 个元素。

for i in range(len(b)):
    for i in range(len(b[1])):
        if b[i][i] == ' ':
            return True

        else:
            return False 

最佳答案

使用any :

any(' ' in b for b in board)

演示:

>>> board = [['B', 'B', 'B', ' '],['B', 'B', 'B', 'B'],['B', 'B', 'B', 'B']]
>>> any(' ' in b for b in board)
True
>>> any(' ' in b for b in board[1:])
False

in 运算符可用于检查某个项目是否存在于可迭代对象中,并且与 for 循环相比速度非常快。

关于python - 检查二维列表中的每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22034197/

相关文章:

python - Dataframe 对象中的拼写更正,Python

python - 如何将变量的值放入字符串中(将其插入字符串中)?

r - 如何在嵌套列表中使用 for 循环?

python - 如何在python中以键值对的形式打印数组?

python - 加速子数组的洗牌和存储

python - 计算两个列表中的相同对

c# List<t> 在一个类中

python - 如何使用pyinstaller?

python - UsersConfig()函数中的ready()函数是什么?

python+numpy : why does numpy. 日志操作数太大会抛出属性错误?