python - 嵌套范围仅适用于最后一个范围
问题描述
这里绝对是初学者,所以如果某些术语使用不正确,我深表歉意。我试图同时运行多个范围,直到其中一个达到目标。我尝试嵌套它们,但发生的情况是只有最后一个范围朝着目标工作,而其他范围则停留在 1。为了澄清我希望 x1 打印出 3、6、9、12..,x2 打印出 2, 4,6,8.. 和 x3 打印出 1,2,3,4... 而 x1 和 x2 仅打印 1,1,1,1... 并且只有 x3 正确打印为 1,2,3 ,4,...
range1 = (range(0, 100000000000000000000, 3))
range2 = (range(0, 100000000000000000000, 2))
range3 = (range(0, 100000000000000000000, 1))
for x1 in range1:
for x2 in range2:
for x3 in range3:
if x1 == 1358445000:
print ("x1=", x1)
break
if x2 == 1358445000:
print ("x2=", x2)
break
if x3 == 1358445000:
print ("x3=", x3)
break
else:
print (x1)
print (x2)
print (x3)
解决方案
zip
将有助于解决您的问题:
range1 = range(0, 100000000000000000000, 3)
range2 = range(0, 100000000000000000000, 2)
range3 = range(0, 100000000000000000000, 1)
for x1, x2, x3 in zip(range1, range2, range3):
if x1 == 1358445000:
print("x1=", x1)
break
if x2 == 1358445000:
print("x2=", x2)
break
if x3 == 1358445000:
print("x3=", x3)
break
else:
print(x1)
print(x2)
print(x3)
请注意, zip 迭代将在最短的迭代处停止。您可能还想zip_longest
从itertools
包中查看。
推荐阅读
- sql - 从 select 语句中插入多个值
- java - 如何从另一个类中的一个类访问数组
- python - Kivy 使用多个类
- python-3.x - Gunicorn 无法以 code=exited, status=203/EXEC 启动
- entity-framework-core - Entity Framework Core - 获取多对多关系的问题
- parsing - 在 Fortran 中解析一个巨大的文件
- android - 未播放从 azure blob 存储中获取的视频
- vba - 在VBA中的单列中匹配一系列行中的“文本”
- kubernetes - K8s 容器内没有互联网连接
- logging - 在过去一周的日志中查找服务器日志中不存在的新错误