在Python中使用'while'循环中的'和'表达式

sax*_*xgd 2 python int expression list while-loop

在我的程序中我有一个列表,我想循环,直到列表的所有列都等于2.列中的所有项目都是数字,但有些格式为字符串,有些格式为整数,因为它们是改变了该计划的其他部分.下面是我尝试过的3个解决方案,我正在运行python 2.7.

while (int(newlist[0][1]) != 2) and (int(newlist[1][1]) != 2) etc... != 2:
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是当只有一个列表项(而不是整列)等于2时,循环结束

while int(newlist[0-8][1]) != 2:


while int(newlist[0 and 1 and 2 and 3 and 4 and 5 and 6 and 7 and 8][1]) != 2:
Run Code Online (Sandbox Code Playgroud)

如果有人能告诉我我做错了什么或更好的做法,我真的很感激帮助

phi*_*hag 5

括号中的表达式被计算为单个值:newlist[0-8]与...相同newlist[-8],并且newlist[0 and 1 and 2 and 3]与之相同 newlist[0].你想要any:

while any(int(newsublist[1]) != 2 for newsublist in newlist):
Run Code Online (Sandbox Code Playgroud)