如何将Python for循环的输出结果存储到另一个变量中
实现方案
下面提供两种常用的实现思路,你可以根据自己的需求选择:
方法1:直接收集结果到列表(最推荐,改动小逻辑清晰)
新增一个列表变量存储每次的输出结果,原有判断逻辑几乎不需要调整:
# 初始化空列表存储所有输出内容 result = [] for {for loop assertion }: if (a) > 0 and b > 0: current = 'same' print(current) result.append(current) elif (a) < 0 and b < 0: current = 'same' print(current) result.append(current) else: current = 'different' print(current) result.append(current)
如果不需要保留原来的打印功能,直接删掉print(current)语句即可。如果需要得到和打印输出格式完全一致的带换行的字符串,执行full_output = '\n'.join(result)就能拿到。
方法2:截获标准输出(适合不想修改原有print逻辑的场景)
如果不想改动原有代码里的print语句,可以临时重定向标准输出到变量中:
import io import sys # 保存原始标准输出 origin_stdout = sys.stdout # 初始化字符串缓存对象 buffer = io.StringIO() sys.stdout = buffer # 你原本的代码逻辑不需要做任何修改 for {for loop assertion }: if (a) > 0 and b > 0: print('same') elif (a) < 0 and b < 0: print('same') else: print('different') # 恢复标准输出 sys.stdout = origin_stdout # 获取所有打印的内容,和直接运行输出的格式完全一致 full_output = buffer.getvalue() # 关闭缓存 buffer.close()
内容的提问来源于stack exchange,提问作者JaneDoe
相关产品推荐
相关产品推荐

