博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
复合数据类型,英文词频统计
阅读量:5735 次
发布时间:2019-06-18

本文共 5788 字,大约阅读时间需要 19 分钟。

作业要求来自于

 

1.列表,元组,字典,集合的增删改查及遍历

 

列表
操作 方法 示例
增加

list.append(obj)

增加元素到末尾

list=['Michael','Bob','Tracy','李三','Tracy','Sarah']list.append('张四')print(list)
append

list.insert(index, obj)

增加元素到指定位置

list=['Michael','Bob','Tracy','李三','Tracy','Sarah']list.insert(1,'Jack')print(list)
insert

list.extend(list2)

将list2列表中的元素增加到list中

list=['Michael','Bob','Tracy','李三','Tracy','Sarah']list2=['张四','Jack']list.extend(list2)print(list)
entend

删除

list.pop(index)

删除指定位置的元素

list.pop()

删除最后一个元素

list=['Michael','Bob','Tracy','李三','Tracy','Sarah']list2=['张四','Jack']list.pop(1)list2.pop()print(list,list2)
pop

修改

list[index]=obj

修改指定位置的元素

list=['Michael','Bob','Tracy','李三','Tracy','Sarah']list[2]='张四'print(list)
list[]=obj

查询

 

list[index]

通过下标索引,从0开始

list=['Michael','Bob','Tracy','李三','Tracy','Sarah']print(list[2])
list[]

list[a:b]

切片,从哪里到哪里

list=['Michael','Bob','Tracy','李三','Tracy','Sarah']print(list[1:4])
list[a:b]

遍历

for x in list

list=['Michael','Bob','Tracy','李三','Tracy','Sarah']for x in list:    print(x, end=",")
for x in list

for i in range(len(list))

list=['Michael','Bob','Tracy','李三','Tracy','Sarah']for i in range(len(list)):    print("序号:", i, "  值:", list[i])
for i in range(len(list))

for i,val in enumerate(list)

 
list=['Michael','Bob','Tracy','李三','Tracy','Sarah']for i, val in enumerate(list):    print("序号:", i, "  值:", val)
for i, val in enumerate(list)

 

for i in list

 
list=['Michael','Bob','Tracy','李三','Tracy','Sarah']for i in list:    idx = list.index(i) # 索引    if (idx < len(list) - 1):        print(i, '---------', list[idx + 1])
for i in list

 

 

元组
操作 方法 示例
增加

tup=tup1+tup2

元组不支持修改,但可以通过连接组合的方式进行增加

tup1=('Michael','Bob','Tracy','李三','Tracy','Sarah')tup2=('张四','Jack')tup=tup1+tup2print(tup)
tup1+tup2

删除

del tup

元组不支持单个元素删除,但可以删除整个元组

tup=('Michael','Bob','Tracy','李三','Tracy','Sarah')print(tup)del tupprint(tup)
del tup

修改  

tup[index]=obj

修改指定位置的元素

元组和列表转换

tup=('Michael','Bob','Tracy','李三','Tracy','Sarah')tup=list(tup)tup[0]='张四'tup[1]='Jacky'tup=tuple(tup)print(tup)
tup[index]=obj

 
查询

 

tup[index]

通过下标索引,从0开始

tup=('Michael','Bob','Tracy','李三','Tracy','Sarah')print(tup[2])
tup[index]

tup[a:b]

切片,顾头不顾尾

tup=('Michael','Bob','Tracy','李三','Tracy','Sarah')print(tup[2:5])
tup[a:b]

遍历

for x in (tup)

tup=('Michael','Bob','Tracy','李三','Tracy','Sarah')for x in (tup):    print(x)
for x in (tup)

 

字典
操作 方法 示例
增加

dict[key]=value

通过赋值的方法增加元素

dict={
'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}dict['张四']=8print(dict)
dict[key]

删除

del dict[key]

删除单一元素,通过key来指定删除

dict={
'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}del dict['Bob']print(dict)
del dict[]

dict.pop(key)

删除单一元素,通过key来指定删除

dict={
'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}dict.pop('Tracy')print(dict)
dict.pop()

修改

dict[key]=value

通过对已有的key重新赋值的方法修改

dict={
'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}dict['Bob']=8print(dict)
dict[key]=value

查询

 

 

 

dict[key]

通过key访问value值

dict={
'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}print(dict['李三'])
dict[key]

dict.items()

以列表返回可遍历的(键, 值) 元组数组

dict={
'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}print(dict.items())
dict.items()

dict.keys()

以列表返回一个字典所有键值

dict.values()

以列表返回一个字典所有值

dict={
'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}print(dict.keys(),dict.values())
dict.keys(),dict.values()

dict.get(key)

返回指定key的对应字典值,没有返回none

dict={
'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}print(dict.get('Michael'))
dict.get()

遍历

for key in dict.keys()

dict={
'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}for key in dict.keys(): print(key)
for key in dict.keys()

for val in dict.values()

dict={
'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}for val in dict.values(): print(val)
for val in dict.values()

for key,val in dict.items()

dict={
'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}for key, val in dict.items(): print(key, " : ", val)
for key, val in dict.items()

 

集合
操作 方法 示例
增加

s.add(obj)

在集合s中添加对象obj

s=set(['Michael','Bob','Tracy','李三','Tracy','Sarah'])s.add('张四')print(s)
s.add()

删除

s.remove(obj)

从集合s中删除对象obj

s=set(['Michael','Bob','Tracy','李三','Tracy','Sarah'])s.remove('Bob')print(s)
s.remove()

修改  

s[index]=obj

修改指定位置的元素

集合和列表转换

s=set(['Michael','Bob','Tracy','李三','Tracy','Sarah'])s=list(s)s[2]='张四's=set(s)print(s)
s[index]=obj

遍历 for x in s
s=set(['Michael','Bob','Tracy','李三','Tracy','Sarah'])for x in s:    print(x)
for x in s

 

2.总结列表,元组,字典,集合的联系与区别

(1)列表

  • 列表list,用中括号“[ ]”表示
  • 列表是一组任意类型的值,按照一定顺序组合而成的 
  • 可以随时添加删除修改其中的元素
  • 元素可重复
  • 存储时每一个元素被标识一个索引,每当引用时,会将这个引用指向一个对象,所以程序只需处理对象的操作

(2)元组

  • 元组tuple,用小括号“( )”表示
  • 与列表相同,有序
  • 一旦初始化就不能修改
  • 元素可重复
  • 与列表相似,元组是对象引用的数组

(3)字典

  • 字典dict,用大括号“{key,value}”表示
  • 字典中的项没有特定顺序,以“键”为象征 
  • 因为是无序,故不能进行序列操作,但可以在远处修改,通过键映射到值
  • key不能重复
  • 字典存储的是对象引用,不是拷贝,和列表一样

(4)集合

  • 集合set,用小括号“( )”表示
  • 无序
  • 可变,可以添加和删除元素
  • 无重复
  • 与列表相似

 

3.词频统计

# import nltk# nltk.download("stopwords")from nltk.corpus import stopwordsstops=set(stopwords.words('english'))#通过文件读取字符串 str,对文本进行预处理def gettxt():    sep=".,:;?!-_'"    txt=open('Crimes and Punishments.txt','r', encoding='UTF-8').read().lower()    for ch in sep:        txt=txt.replace(ch,' ')    return txt#分解提取单词 listtxtList=gettxt().split()print(txtList)print('crimes:',txtList.count('crimes'))txtSet=set(txtList)#排除语法型词汇,单词计数字典 set , dicttxtSet=txtSet-stopsprint(txtSet)txtDict={}for word in txtSet:    txtDict[word]=txtList.count(word)print(txtDict)print(txtDict.items())word=list(txtDict.items())#按词频排序 list.sort(key=lambda),turpleword.sort(key=lambda x:x[1],reverse=True)print(word)#输出频率较高的词语top20#for i in range(20):    print(word[i])#排序好的单词列表word保存成csv文件import pandas as pdpd.DataFrame(data=word).to_csv('Crimes and Punishments.csv',encoding='utf-8')
词频统计具体代码

结果如下图:

词云如下图:

转载于:https://www.cnblogs.com/kunnkkk/p/10508999.html

你可能感兴趣的文章
如何使用SecureCrt这个代替超级终端的网工必带软件
查看>>
JQuery入门总结(二)【选择器、方法应用】
查看>>
php魔术方法
查看>>
Entity Framework 4进行代码优先开发
查看>>
Linux中设置服务自启动的三种方式
查看>>
Nova reboot 和 lock 操作 - 每天5分钟玩转 OpenStack(32)
查看>>
我的友情链接
查看>>
虚拟机yum源配置
查看>>
java中的类型转换
查看>>
jsp上传下载图片
查看>>
Nessus 插件更新方式| nasl脚本
查看>>
用canvas实现图片滤镜效果详解之视频效果
查看>>
《易道客》开源进行时...
查看>>
读ReentrantLock 源码笔记
查看>>
fsck命令搞挂了系统,悲剧啊!希望新手朋友引以为戒。
查看>>
Postfix-2.11+Dovecot-2.0.9+MySQL+Nginx+Cyrus-sasl+Extmail-1.2实现基于虚拟用户的邮件系统架构...
查看>>
Protostar heap1
查看>>
Linux磁盘规划方案
查看>>
深入学习JVM内存设置原理和调优
查看>>
Yii 里面直接执行sql语句
查看>>