【大数据】复合数据类型,英文词频统计
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2696
1.列表,元组,字典,集合分别如何增删改查及遍历。
列表:
代码:#增 num = ["a","b","c"] # 列表:定义后可增删改查 print('增加:\n元素原本为:{}'.format(num)) num.append("d") #默认追加到末尾 print('num.append("d"):末尾添加d 结果:{}'.format(num)) num.insert(4,"e") #指定下标位置添加元素 print('num.insert(4,"e"):指定下标为4添加e 结果:{}'.format(num)) num.extend("fghi") #可以分解元素并追加到末尾,也可以增加一个变量里列表 print('num.extend("fghi"):分解元素加到最后 结果:{}\n'.format(num)) #删 print('删除:\n元素原本为:{}'.format(num)) num.pop(0) #按照下标索引删除指定的值 print('num.pop(0):删除第一个元素 结果:{}'.format(num)) num.remove("b") #按元素删除指定的值 print('num.remove("b"):按元素删除指定的值 结果:{}'.format(num)) del num[0:2] #可以删除表内数据,也可以切片删除del num[0:2]从下标0个到第二个 print('del num[0:2]:切片删除del num[0:2]从下标0个到第二个 结果:{}'.format(num)) num.clear() #清除列表内数据 print('num.clear() :清除列表内数据 结果:{}\n'.format(num)) #改 num = ["a","b","c"] # 列表:定义后可增删改查 print('修改:\n元素原本为:{}'.format(num)) num[0] = 'aa' #通过下标定位到元素直接改 print('pop(0):通过下标定位到元素直接改 结果:{}\n'.format(num)) #查 num = ["a","b","c"] # 列表:定义后可增删改查 print('查询:\n元素原本为:{}'.format(num)) print('num(0):查询到元素的值 结果:num的1号下标是:{}\n'.format(num[0])) #遍历 num = ["a","b","c"] # 列表:定义后可便利 print('遍历:\n元素原本为:{}'.format(num)) print('遍历:for i in list: print(i) 结果:') for i in num: print(i)
运行结果:
元组:
代码:
num = ("a", "b", "c") # 元组 定义后只读 print('元组定义后不能增、删、改,只能查') print('查询:\n元素原本为:{}'.format(num)) print('num(0):查询到元素的值 结果:num的1号下标是:{}\n'.format(num[0]))
运行结果:
字典:
代码:
num = {"name": "lengdong", "age": "21"} #采用键值对记录,定义后可增删改查 print('增加:\n元素原本为:{}'.format(num)) num["sex"] ="男" print(' num["sex"] ="男":添加一个键值对 结果:{}'.format(num)) # 删 print('删除:\n元素原本为:{}'.format(num)) num.pop("sex") #跟列表中*.pop使用方法一样,但是字典里指定的是元素 print(num) #改 print('修改:\n元素原本为:{}'.format(num)) num["name"] = '泽锐' #直接指定元素名称(key)就可以改 print(num) #查 print('查询:\n元素原本为:{}'.format(num)) print(' num.get("name"):查询一个键值对 结果:{}'.format(num.get("name")))
运行结果:
元素:
代码:
num = {1,2,3,4,5} #定义一个集合 print('增加:\n元素原本为:{}'.format(num)) num.add(6) print('num.add(6):增加一个元素 结果:{}'.format(num)) print('删除:\n元素原本为:{}'.format(num)) num.remove(1) print('num.remove(1):删除1这个元素,若集合没有1则出错 结果:{}'.format(num)) num.pop() print('num.pop():随机删除一个元素, 结果:{}'.format(num)) print('查询:\n元素原本为:{}'.format(num)) print('1 in num:查询1这个元素是否存在,是则是true, 结果:{}'.format(1 in num)) print('遍历:\n元素原本为:{}'.format(num)) print('for num in set1:print(num):便利整个集合 结果:') for num1 in num: print(num1)
运行结果:
2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:
- 符号
- 有序无序
- 可变不可变
- 重复不可重复
- 存储与查找方式
列表 | 元祖 | 字典 | 集合 | |
符号 |
[] | () | {} | {} |
有序无序 |
有序 | 有序 | 无序,自动正序 | 无序 |
可变不可变 |
可变 | 不可变 | 不可变 | 可变 |
重复不可重复 |
可以 | 可以 | 可以 | 不可以 |
存储与查找方式 |
值 | 值 | 键值对(键不能重复) | 键(不能重复) |
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)
9.可视化:词云
排序好的单词列表word保存成csv文件
import pandas as pd
pd.DataFrame(data=word).to_csv('big.csv',encoding='utf-8')
线上工具生成词云:
https://wordart.com/create
生成的词云: