文件操作之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('
', '')
 7         weapon_num = len(re.findall(weapon, data))
 8         print("33[31:1m%s33[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)
View Code
原文地址:https://www.cnblogs.com/gzj137070928/p/13728139.html