Python:如何在for循环中先输出所有prod_val再输出c,无需使用列表?
实现先打印所有prod_val再打印所有c(无需列表存储)
你可以通过分两次遍历的方式实现需求,完全不需要用列表存储中间值:
方案代码
l = [2,3,4] pro_val = 1 c = 0 # 第一阶段:计算并打印所有prod_val for i in range(len(l)): pro_val *= l[c] c += 1 print(pro_val) print() # 空行分隔输出 # 第二阶段:打印c的序列(直接生成1到列表长度的数值即可) for num in range(1, len(l)+1): print(num)
逻辑说明
- 第一遍遍历完成所有
prod_val的计算和打印,同时c会自然递增到列表长度(这里是3); - 第二遍遍历不需要依赖之前的
c变量,直接利用列表长度生成1到len(l)的序列打印,刚好对应你要的c的输出; - 全程没有用列表存储任何中间值,完全符合你的要求。
如果一定要在单个循环里处理,但又不能存值,其实没有可行的办法——因为你需要先输出所有prod_val,就必须把c的输出延后,而不存储的话没有办法临时保留这些值。分两次遍历是最直接也最符合要求的方案。
内容的提问来源于stack exchange,提问作者guest
相关产品推荐
相关产品推荐

