Python MapReduce中如何将sys.stdin读取的多段文本合并为单个单词列表
问题原因
现有代码仅对每行输入单独拆分后直接打印,没有做多行单词结果的聚合,同时空行经过strip().split()处理后会生成空列表,也被输出到了结果中。
调整后的代码
import sys # 初始化总列表存储所有单词 all_words = [] for line in sys.stdin: words = line.strip().split() # 过滤空行产生的空列表 if words: # 合并当前行单词到总列表 all_words.extend(words) # 全部处理完成后输出合并结果 print(all_words)
改动说明
- 新增全局列表
all_words用于聚合所有行的单词,替代逐行打印单行结果的逻辑 - 使用
extend()方法合并每行的单词列表,保证总列表存储的是单个单词元素而非嵌套子列表 - 增加空列表判断逻辑,过滤空行产生的无效内容,避免最终结果混入多余元素
内容的提问来源于stack exchange,提问作者JohnDoe34
相关产品推荐
相关产品推荐

