所以我在检查数字0是否在另一个列表中的一组列表中遇到了问题。这些行组成了我正在做的一个吃豆人游戏的迷宫,所以这是为了检查吃豆人是否吃掉了所有的硬币。你知道吗
这是我的密码:
row1 =[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]
row2 =[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
row3 =[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1]
row4 =[1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1]
row5 =[1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1]
row6 =[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]
row7 =[1,0,1,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1]
row8 =[1,0,0,0,0,1,0,1,1,1,1,1,0,1,0,0,0,0,1]
row9 =[1,1,1,1,0,1,0,0,0,1,0,0,0,1,0,1,1,1,1]
row10=[3,3,3,1,0,1,1,1,0,1,0,1,1,1,0,1,3,3,3]
row11=[3,3,3,1,0,1,0,0,0,0,0,0,0,1,0,1,3,3,3]
row12=[3,3,3,1,0,1,0,1,4,4,4,1,0,1,0,1,3,3,3]
row13=[1,1,1,1,0,1,0,1,3,3,3,1,0,1,0,1,1,1,1]
row14=[3,3,3,3,0,0,0,1,3,3,3,1,0,0,0,3,3,3,3]
row15=[1,1,1,1,0,1,0,1,5,5,5,1,0,1,0,1,1,1,1]
row16=[3,3,3,1,0,1,0,3,3,3,3,3,0,1,0,1,3,3,3]
row17=[3,3,3,1,0,1,0,1,1,1,1,1,0,1,0,1,3,3,3]
row18=[3,3,3,1,0,1,0,1,1,1,1,1,0,1,0,1,3,3,3]
row19=[1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1]
row20=[1,0,0,0,0,1,1,1,0,1,0,1,1,1,0,0,0,0,1]
row21=[1,0,1,1,0,0,0,0,0,3,0,0,0,0,0,1,1,0,1]
row22=[1,0,1,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1]
row23=[1,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,1]
row24=[1,0,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1]
row25=[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
row26=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
maze = [row1,row2,row3,row4,row5,row6,row7,row8,row9,row10,row11,row12,
row13,row14,row15,row16,row17,row18,row19,row20,row21,row22,
row23,row24,row25,row26]
所以我尝试了if 0 not in maze:
,但是if语句将执行,无论0是否在(迷宫)中。你知道吗
任何帮助都将不胜感激,谢谢。你知道吗
在第一次尝试中,您只需要测试顶层列表中的
0
。当然,顶级列表只有列表,因此,测试失败。你知道吗必须遍历
maze
中的每个子列表。您可以使用手动for循环,这是一个有效的选项:但是Python为^{} 函数提供了更好的方法(基本上是上述函数的更好实现):
但是您还必须使用
not
运算符(在其他语言中称为!
)来否定any()
可能返回的真值。因此,完整的解决方案是:any
已经提到,但是您也可以展平列表(例如使用^{就像
any
一找到就停止。只是因为它经常被忽略:生成器和迭代器(比如chain
)通常支持in
操作符。你知道吗您必须循环遍历
maze
中的每个列表,并检查是否有0:^{} 函数的优点在于,一旦找到0,它就停止在
maze
中循环。你知道吗相关问题 更多 >
编程相关推荐