复合数据类型,英文词频统计

作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2696

1.列表,元组,字典,集合分别如何增删改查及遍历。

# # -*- coding: utf-8 -*-
#列表的遍历
List=["阿花","小金",80,90]
print("列表的遍历:")
for l1 in List:
print(l1)
#元组的遍历
Tuple=(23,79,69,40)
print("元组的遍历:")
for T1 in Tuple:
print(T1)
#集合的遍历
Set={43,58,90,74}
print("集合的遍历:")
for S1 in Set:
print(S1)
#字典的遍历
classmate=["牛牛","王清","山本"]
sorce=[89,76,90]
d={}
print("字典的遍历:")
d=dict(zip(classmate,sorce))
for i in d.keys():
print(i,d[i])

 


2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:

  • 括号
  • 有序无序
  • 可变不可变
  • 重复不可重复
  • 存储与查找方式

1.列表,元组,字典是有顺序的,而集合是没顺序的

2.列表是以方括号形式表示,元组是以圆括号表示,字典以花括号表示,集合则是以[()]的形式表示

3.列表是可变对象,它支持在原处修改的操作.也可以通过指定的索引和分片获取元素。区别于元组,可动态增加,删除,更新。

4.元组和列表在结构上没有什么区别,唯一的差异在于元组是只读的,不能修改。元组用“()”表示。元组一旦定义其长度和内容都是固定的。一旦创建元组,则这个元组就不能被修改,即不能对元组进行更新、增加、删除操作。若想创建包含一个元素的元组,则必须在该元素后面加逗号“,”,否则创建的不是一个元组,而是一个字符串。

5.集合没有特殊的表示方法,而是通过一个set函数转换成集合。集合是一个无序不重复元素集,基本功能包括关系测试和消除重复元素.。

6.字典最大的价值是查询,通过键,查找值。

3.词频统计

  • 1.下载一长篇小说,存成utf-8编码的文本文件 file

    2.通过文件读取字符串 str

    3.对文本进行预处理

    4.分解提取单词 list

    5.单词计数字典 set , dict

    6.按词频排序 list.sort(key=lambda),turple

    7.排除语法型词汇,代词、冠词、连词等无语义词

    • 自定义停用词表
    • 或用stops.txt

  8.输出TOP(20)

# # -*- coding: utf-8 -*-
fo = open(r'D:\After Twenty Years.txt', encoding='utf-8')
text = fo.read()
fo.close()
text = text.lower() # 转换成小写
sep = ",.?!:''\n'"

for s in sep: # 去除各种符号,用空格代替
text = text.replace(s, ' ')
allWord = text.split(' ') # 分隔出单词
result = [] # 存储不重复的单词
print("单词 个数")

for b in allWord:
isRepeat = False
for c in result:
if b == c:
isRepeat=True
if isRepeat == False: # 若未出现在result字典里,则加入
result.append(b)

for ch in result:
if ch != '':
print("{:<10} {:<5}".format(ch, allWord.count(ch))) # 格式化输出

  • 9.可视化:词云

 排序好的单词列表word保存成csv文件

import pandas as pd
pd.DataFrame(data=word).to_csv('big.csv',encoding='utf-8')

线上工具生成词云:
https://wordart.com/create

 


 

posted @ 2019-03-14 20:47  zz1j  阅读(157)  评论(0编辑  收藏  举报