import jieba
import matplotlib.pyplot as plt
# _*_ coding:utf-8 _*_
txt=open("tangshi.txt","r",encoding="utf-8").read()
words=jieba.lcut(txt)
counts={}
for word in words:
if word in ["春","夏","秋","冬"]:
counts[word]=counts.get(word,0)+1;
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True) # 排序
bar_w=[]
bar_c=[]
for i in range(4):
word,count=items[i]
bar_w.append(word)
bar_c.append(count)
print("{0:<5}{1:>5}".format(word, count))
# 解决bar显示中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.bar(bar_w,bar_c)
plt.show()
# 春 1785
# 秋 1039
# 夏 114
# 冬 44
解决bar显示中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
关于list assignment index out of range
举个例子 a是一个list
不要使用a[i]对list a进行输入,应该使用append或者insert避免list的访问空
##正确代码
bar_w.append(word)
bar_c.append(count)
##错误代码
bar_w[i]=word
bar_c[i]=count
浙公网安备 33010602011771号