如果出现True,我希望循环中断。出于某种原因,break语句使事情变得扭曲
a = [[1,2,3], [4,5,6], [7,8,9], [1,4,7], [2,5,8], [3,6,9], [1,5,9], [7,5,3]]
b = [[9], [9, 7], [9, 7, 8], [9, 7, 8, 2]]
countdata = []
for x in range(len(b)):
for y in range(len(a)):
if all(elem in b[x] for elem in a[y]) == True:
break
countdata.append(all(elem in b[x] for elem in a[y]))
print(len(countdata))
输出:
>>>20
输出应该是18。证明:
countdata = []
for x in range(len(b)):
for y in range(len(a)):
tt = all(elem in b[x] for elem in a[y] )
countdata.append(tt)
nylista = []
for z in countdata:
if z == True:
break
nylista.append(z)
print(len(nylista))
>>>18
是虫子吗
首先,纠正代码段中的错误。您想要的代码段是
接下来,当您遇到
break
语句时,您只是在退出内部循环。因此答案不同这应该可以解决它
您正在
break
运行的是内部循环,而不是外部循环,因此外部循环将继续,然后再次运行内部循环(当[7, 8, 9]
包含在[9, 7, 8, 2]
中时,内部循环本身就是break
)有a number of solutions for ^{}ing multiple loops 供你看
如本文所述,您并没有脱离外部循环:
相关问题 更多 >
编程相关推荐