Python嵌套for循环如何实现先遍历完内层列表再处理外层下一项
嵌套range遍历输出逻辑调整方案
原代码核心问题
- 内外层循环变量重名,均使用
i导致外层的循环变量被内层覆盖,取值逻辑完全混乱 - 输出顺序不符合需求:内层循环每次同步打印pid和store的对应下标元素,而非外层拿到一个pid后先输出该pid,再输出整个store的所有元素
- 原生
print()方法默认带换行符,导致每个输出内容单独占一行
修正代码(最优实现)
pid = ["1", "2", "3"] store = ["222", "233", "333"] output_list = [] for p in pid: # 先加入当前pid output_list.append(p) # 追加当前pid对应的所有store元素 output_list.extend(store) # 用空格拼接所有元素一次性输出,无多余末尾空格 print(' '.join(output_list))
运行后输出结果完全符合预期:1 222 233 333 2 222 233 333 3 222 233 333
兼容原循环打印的调整方案
如果要保留逐层打印的写法,只需修改循环变量名、打印顺序,加上end=' '控制不换行即可:
pid = ["1", "2", "3"] store = ["222", "233", "333"] # 外层循环变量用p_idx避免和内层重名 for p_idx in range(len(pid)): # 先打印当前pid,不换行 print(pid[p_idx], end=' ') # 内层遍历所有store元素 for s_idx in range(len(store)): print(store[s_idx], end=' ')
内容的提问来源于stack exchange,提问作者DiscordHelp
相关产品推荐
相关产品推荐

