“最大政策title长度是: 2”这个输出明显不对啊,随便哪个标题长度都超过2了,这个代码怎么改呀?
# 用于记录政策title每个单词对应哪个序号
policy_titles = {}
#记录政策名字包含的单词最大数量
max_title_length = 0
# 对不同的单词从1 开始计数
t_count = 1
# 按行读取数据并处理
for item in data:
item = item.strip().split(",")
# 1. 获得政策的ID信息
v_id = item[0]
v_title = item[1]
v_year = item[3]
titles = v_title.split()
# 获得title最大长度
max_title_length = max((max_title_length, len(titles)))
# 2. 统计政策名字的单词,并给每个单词一个序号,放在policy_titles中
for t in titles:
if t not in policy_titles:
policy_titles[t] = t_count
t_count += 1
v_tit = [policy_titles[k] for k in titles]
# 保存政策ID数据和title数据到字典中
policy_info[v_id] = {'pol_id': int(v_id),
'title': v_tit,
'years': str(v_year)}
print("最大政策title长度是:", max_title_length)
ID = 1
# 读取第一条数据,并打印
item = data[0]
item = item.strip().split(",")
print("政策 ID:", item[0])
print("政策 title:", item[1])
print("ID为1 的电影数据是:", policy_info['1'])
输出:
最大政策title长度是: 2
政策 ID: 1
政策 title: 国务院办公厅关于印发新能源汽车产业发展规划(2021—2035年)的通知
ID为1 的电影数据是: {'pol_id': 1, 'title': [1], 'years': '2020.10.20'}
用法没问题,问题出在你这个 v_title.split() 上面, split是字符分割函数, 结果是列表;
至于 最大是 2 ,那就是你有个标题里面是空白字符(空格、制表符、换行符等)作为分隔符,这是split 默认的分割符
像这样: