文件操作之extract_weapon
sanguoyanyi.txt文档的准备,详见文件操作之extract_name
下面是weapon.txt的内容:
练习:提取相关武器,并统计出现的次数,然后排序
1 import re 2 3 4 def find_item2(weapon): 5 with open('sanguoyanyi.txt', encoding='utf-8') as f1: 6 data = f1.read().replace('\n', '') 7 weapon_num = len(re.findall(weapon, data)) 8 print("\033[31:1m%s\033[0m出现了%s 次" % (weapon, weapon_num)) 9 return weapon_num 10 11 12 weapon_dict = {} 13 # with语句叫上下文管理器,会自动关闭被调用打开的文件 14 with open('weapon.txt', encoding='utf-8') as f: 15 i = 1 16 for line in f: 17 if i % 2 == 1: 18 weapon_name = line.strip() 19 weapon_dict[weapon_name] = find_item2(weapon_name) 20 i += 1 21 weapon_sorted1 = sorted(weapon_dict.items(), key=lambda item: item[1], reverse=True) 22 print('按次数降序排列:', weapon_sorted1) 23 weapon_sorted2 = sorted(weapon_dict.items()) 24 print('按武器排列:', weapon_sorted2)