Python循环输出格式优化:动态p下合并同一word的多行输出
解决方案
这个问题很好解决,核心思路是先为每个单词收集所有对应的统计结果,最后一次性输出整行内容,而不是每循环一次就打印一行。这样不管p是动态变化的多少,都能完美适配。
具体代码实现
import re # 假设words、input_和p已经提前定义好 for word in words: # 初始化结果列表,先放入当前处理的单词 output_parts = [word] for i in range(1, p + 1): # 计算当前i对应的匹配次数 match_count = len(re.findall(word, input_[i])) # 将次数和i转为字符串,添加到结果列表 output_parts.append(str(match_count)) output_parts.append(str(i)) # 用空格拼接所有部分,一次性打印整行 print(' '.join(output_parts))
代码说明
- 我们先创建一个列表
output_parts,第一个元素是当前处理的单词word; - 内层循环遍历每个
i时,不再直接打印,而是把匹配次数match_count和i转成字符串后添加到列表里; - 当内层循环结束(也就是处理完所有
i),用' '.join(output_parts)把列表里的所有元素用空格连接成一个字符串,再一次性打印出来,就得到了你期望的格式。
比如你给出的示例场景,这个代码会输出:businesses 0 1 0 2 2 3,完全符合需求。
内容的提问来源于stack exchange,提问作者Deny
相关产品推荐
相关产品推荐

