类型:Python 文件
附件是一个 CSV 文件,其中每个数据前后存在空格,请对其进行清洗,要求如下:
示例1:
输入:"
1, 2, 3, 4, 5
'a', 'b' , 'c' , 'd','e'
"
输出:"
1,2,3,4,5
'a','b','c','d','e'
"
注意:
with open("data.csv","r") as fp:#打开文件
for line in fp:#按行遍历
line = line.replace(" ", "")#将空格替换为""
print(line, end="")#按行输出
类型:Python 文件
分析附件 data.txt 文件的字符分布,即每个字符对应的数量。
按照 字符:数量
显示,每行一个结果,如果没有出现该字节则不显示输出,字符采用 Unicode 编码升序排列。
示例1:
输入:无
输出:"
a:1
b:2
c:3
"
注意:
字符:数量
,其中,字符表示为可打印字符,按照升序。d = {}
with open("data.txt","r") as fp:#打开文件
for line in fp:#统计字符
for item in line:
d[item] = d.get(item,0) + 1
keys = sorted(d)#排序,注意!!!!!!!
#字典排序返回的是一个列表
for key in keys:#遍历输出
print(key +':'+ str(d[key]))
类型:Python 文件
附件是《白鹿原》原著内容,请读入内容,分词后输出长度大于 2 且最多的单词。
如果存在多个单词出现频率一致,请输出按照 Unicode 排序后最大的单词。
示例1:
输入:无
输出:"白鹿原"
注意:示例1 是一个输入输出示范样例,不是正确结果
import jieba
f=open('白鹿原.txt','r',encoding='utf-8').read()
words=jieba.lcut(f)
counts={}
for word in words:
if len(word)==1:
continue
else:
counts[word]=counts.get(word,0)+1
items=list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
print(items[0][0])
类型:Python 组合数据类型
字典 d
中存储了我国 42 所双一流高校及所在省份的对应关系,请以这个列表为数据变量,完善 Python 代码,统计各省份学校的数量。
d = {"北京大学":"北京", "中国人民大学":"北京","清华大学":"北京",\
"北京航空航天大学":"北京","北京理工大学":"北京","中国农业大学":"北京",\
"北京师范大学":"北京","中央民族大学":"北京","南开大学":"天津",\
"天津大学":"天津","大连理工大学":"辽宁","吉林大学":"吉林",\
"哈尔滨工业大学":"黑龙江","复旦大学":"上海", "同济大学":"上海",\
"上海交通大学":"上海","华东师范大学":"上海", "南京大学":"江苏",\
"东南大学":"江苏","浙江大学":"浙江","中国科学技术大学":"安徽",\
"厦门大学":"福建","山东大学":"山东", "中国海洋大学":"山东",\
"武汉大学":"湖北","华中科技大学":"湖北", "中南大学":"湖南",\
"中山大学":"广东","华南理工大学":"广东", "四川大学":"四川",\
"电子科技大学":"四川","重庆大学":"重庆","西安交通大学":"陕西",\
"西北工业大学":"陕西","兰州大学":"甘肃", "国防科技大学":"湖南",\
"东北大学":"辽宁","郑州大学":"河南", "湖南大学":"湖南", "云南大学":"云南", \
"西北农林科技大学":"陕西", "新疆大学":"新疆"}
示例1:
输入:无
输出:"
北京:8
天津:2
辽宁:2
吉林:1
"
注意:示例1 仅是输入输出样例,不是正确结果。
d = {"北京大学": "北京", "中国人民大学": "北京", "清华大学": "北京", \
"北京航空航天大学": "北京", "北京理工大学": "北京", "中国农业大学": "北京", \
"北京师范大学": "北京", "中央民族大学": "北京", "南开大学": "天津", \
"天津大学": "天津", "大连理工大学": "辽宁", "吉林大学": "吉林", \
"哈尔滨工业大学": "黑龙江", "复旦大学": "上海", "同济大学": "上海", \
"上海交通大学": "上海", "华东师范大学": "上海", "南京大学": "江苏", \
"东南大学": "江苏", "浙江大学": "浙江", "中国科学技术大学": "安徽", \
"厦门大学": "福建", "山东大学": "山东", "中国海洋大学": "山东", \
"武汉大学": "湖北", "华中科技大学": "湖北", "中南大学": "湖南", \
"中山大学": "广东", "华南理工大学": "广东", "四川大学": "四川", \
"电子科技大学": "四川", "重庆大学": "重庆", "西安交通大学": "陕西", \
"西北工业大学": "陕西", "兰州大学": "甘肃", "国防科技大学": "湖南", \
"东北大学": "辽宁", "郑州大学": "河南", "湖南大学": "湖南", "云南大学": "云南", \
"西北农林科技大学": "陕西", "新疆大学": "新疆"}
x = list(d.values())
count = {}
for i in x:
if i not in count:
count[i] = 1
else:
count[i] += 1
items = list(count.items())
# 输出词和与之对应的频率
for i in range(len(items)):
word, count = items[i]
print("{0}:{1}".format(word, count))
这是"实例"题,不需要作答。
文本词频统计::《三国演义》人物出场次数统计
https://python123.io/resources/pye/threekingdoms.txt
(1) 中文文本分词,使用字典表达词频;
(2) 将词频与人物相关联,面向问题;
(3) 使用字典表达词频,扩展程序解决问题.
实例代码
这是"实例"题,不需要作答,给出代码如下:
import jieba
excludes = {"将军","却说","荆州","二人","不可","不能","如此"}
txt = open("threekingdoms.txt", "r", encoding='utf-8').read()
words = jieba.lcut(txt)
counts = {}
for word in words:
if len(word) == 1:
continue
elif word == "诸葛亮" or word == "孔明曰":
rword = "孔明"
elif word == "关公" or word == "云长":
rword = "关羽"
elif word == "玄德" or word == "玄德曰":
rword = "刘备"
elif word == "孟德" or word == "丞相":
rword = "曹操"
else:
rword = word
counts[rword] = counts.get(rword,0) + 1
for word in excludes:
del counts[word]
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
for i in range(10):
word, count = items[i]
print ("{0:<10}{1:>5}".format(word, count))
基本思路:
(1) 读取文件、分词整理;
(2) 设置并输出词云;
(3) 观察结果,优化迭代。
这是"实例"题,不需要作答,给出代码如下:
常规矩形词云
import jieba
import wordcloud
f = open("新时代中国特色社会主义.txt", "r", encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud( \
width = 1000, height = 700,\
background_color = "white",
font_path = "msyh.ttc"
)
w.generate(txt)
w.to_file("grwordcloud.png")
非常规图形词云
import jieba
import wordcloud
from scipy.misc import imread
mask = imread("chinamap.jpg")
excludes = { }
f = open("新时代中国特色社会主义.txt", "r", encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud(\
width = 1000, height = 700,\
background_color = "white",
font_path = "msyh.ttc", mask = mask
)
w.generate(txt)
w.to_file("grwordcloudm.png")
新时代中国特色社会主义 | 2018 年一号文件 | |
常规矩形词云 | ||
非常规图形词云 |