如何用Python for循环统计指定姓名出现次数并生成对应变量
姓名出现次数统计实现方案
核心思路
先读取两个文件的内容,初始化对应姓名的统计变量,再通过for循环遍历每个姓名,统计其在目标文本中的出现次数并赋值给变量。
具体实现(以Python为例)
1. 读取文件内容
先读取姓名列表文件和目标文本文件,处理掉多余的换行符和空格,确保姓名格式准确。
2. 初始化统计变量
为每个指定姓名创建整数变量,初始值设为0。
3. 遍历统计并赋值
通过for循环逐个处理每个姓名,统计其在目标文本中的出现次数,再把结果赋值给对应的变量。
代码示例
# 读取Names.txt中的姓名列表 with open('Names.txt', 'r', encoding='utf-8') as name_file: # 去除每行的换行符和首尾空格,过滤空行 target_names = [name.strip() for name in name_file.readlines() if name.strip()] # 读取Paragraph.txt的目标文本内容 with open('Paragraph.txt', 'r', encoding='utf-8') as para_file: content = para_file.read() # 初始化每个姓名的统计变量 John = 0 Anna = 0 Ron = 0 David = 0 # 遍历姓名列表,统计每个姓名的出现次数 for name in target_names: occurrence = content.count(name) # 根据姓名匹配赋值 if name == 'John': John = occurrence elif name == 'Anna': Anna = occurrence elif name == 'Ron': Ron = occurrence elif name == 'David': David = occurrence # 查看统计结果 print(f"John出现次数: {John}") print(f"Anna出现次数: {Anna}") print(f"Ron出现次数: {Ron}") print(f"David出现次数: {David}")
可选优化(动态创建变量)
如果Names.txt中的姓名列表可能变动,不需要手动初始化变量,可以用字典统计后动态生成变量:
# 读取文件部分同上 # 用字典初始化统计项 count_result = {name: 0 for name in target_names} # 遍历统计 for name in count_result: count_result[name] = content.count(name) # 动态创建全局变量 for name, count in count_result.items(): globals()[name] = count # 直接调用变量查看结果 print(John, Anna, Ron, David)
内容的提问来源于stack exchange,提问作者greensky
相关产品推荐
相关产品推荐

