基本问题:
我正在尝试检查这个二维列表中的每个元素
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/