复合数据类型,英文词频统计
1 2 3 4 | list = [ 'a' , 'b' , 'c' ] list .append([ 'd' , 'q' ]) list .extend([ 'e' , 'f' ]) list .insert( 0 , 1 ) |
删:
1 2 3 4 5 | list = [ 'a' , 'b' , 'c' , 'd' , 'e' , 'f' ] del list [ 0 ] list .pop() list .remove( 'e' ) list .clear() |
查:
1 2 | print ( list ) print ( list [ 0 ]) |
改:
1 2 3 | list = [ 'a' , 'b' , 'c' , 'd' , 'e' , 'f' ] list [ 0 ] = 1 print ( list ) |
遍历:
1 2 3 4 5 6 | for i in list : print (i,end = '') for i in range ( len ( list )): print ( list [i],end = '') for index,value in enumerate ( list ): print (index,value) |
2、元组
增:
1 2 3 4 | tupA = ( 'a' , 'b' , 'c' , 'd' , 'e' , 'f' ) tupB = ( 'q' , 'm' ) tupC = tupA + tupB print (tupC) |
删:
1 | del tupC |
查:
1 2 | print (tupC) print (tupC[ 0 ]) |
改:
元组不能修改
遍历:
1 2 3 4 5 6 | for i in tupA: print (i,end = '') for i in range ( len ( list )): print (tupA[i],end = '') for index,value in enumerate (tupA): print (index,value) |
3、字典
增:
1 2 3 4 | dict = { 'a' : 1 , 'b' : 2 , 'c' : 3 , 'd' : 4 } dict [ 'e' ] = 5 dict .update({ 'f' : 6 , 'g' : 7 }) print ( dict ) |
删:
1 2 3 4 | dict = { 'a' : 1 , 'b' : 2 , 'c' : 3 , 'd' : 4 } del dict [ 'a' ] dict .pop( 'd' ) print ( dict ) |
查:
1 2 | dict = { 'a' : 1 , 'b' : 2 , 'c' : 3 , 'd' : 4 } print ( dict [ 'a' ]) |
改:
1 2 3 4 | dict = { 'a' : 1 , 'b' : 2 , 'c' : 3 , 'd' : 4 } dict .update({ 'a' : 9999 }) dict [ 'b' ] = 999 print ( dict ) |
遍历:
1 2 3 4 5 6 7 8 9 | dict = { 'a' : 1 , 'b' : 2 , 'c' : 3 , 'd' : 4 } for i in dict .items(): print (i) for i in dict .keys(): print (i) for i in dict .values(): print (i) for i,j in dict .items(): print (i,j) |
4、集合
增:
set={'a',1,2,'c','d'}
set.update({'qq':1})
set.update([1,2,3])
set.add('bb')
print(set)
删:
1 2 3 4 5 6 | set = { 'a' , 1 , 2 , 'c' , 'd' } set .discard( 'qqqq' ) set .remove( 'a' ) set .pop() set .clear() print ( set ) |
查:
1 2 | set = { 'a' , 1 , 2 , 'c' , 'd' } print ( set ) |
改:
没有修改的方法
遍历:
1 2 3 | set = { 'a' , 1 , 2 , 'c' , 'd' } for i in set : print (i,end = '') |
二.总结列表,元组,字典,集合的联系与区别。
1、列表的括号是"[ ]" ,元组的括号是”( )“,字典的括号和集合的括号都是”{ }“;
2、列表与元组都为有序序列,字典与集合为无序序列;
3、列表、字典、集合属于可变序列,而元组属于不可变序列;
4、列表和元组允许重复,而字典和集合不允许重复;
5、列表和元组是可以根据下标进行查找,但元组不可修改,列表可以,字典可根据字典的键名查找相应的值,集合是不允许通过下标进行查询的。
三.词频统计
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
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import pandas as pd file = open ( 'artical.txt' ,encoding = 'utf-8' ) text = file .read() text = text.lower() for i in str ( '''?!",.''' ): text = text.replace(i,'') text = text.split() # 统计单词数量 exclude = [ 'a' , 'the' , 'and' , 'if' , 'you' , 'in' , 'but' , 'not' , 'it' , ' s' , 'if' , "i" ] dict = {} for i in text: if i not in exclude: if i not in dict : dict [i] = text.count(i) print ( dict ) # 排序单词数量 word = list ( dict .items()) word.sort(key = lambda x: x[ 1 ], reverse = True ) print (word) # 输出前二十位的单词 for i in range ( 20 ): print (word[i]) pd.DataFrame(data = word).to_csv( 'b.csv' ,encoding = 'utf-8' ) |
运行结果:
生成csv文件如下:
生成词云如下:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用