这次作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753
1.列表,元组,字典,集合分别如何增删改查及遍历。
(1)列表
增加元素
#append():在列表最后添加元素
list=['apple','peace','banana','orange'] list.append('watermelon') print(list)
#insert():根据列表索引值添加元素 list.insert(2,'pear') print(list)
#extend():合并列表 list_1=['dog','cat'] list.extend(list_1) print(li
删除元素
#pop():删除列表最后一个元素,或者根据索引值删除元素
list=['apple','peace','banana','orange'] list.pop(1) print(list)
#remove():根据元素值删除指定的元素 list=['apple','peace','banana','orange'] list.remove('banana') print(list)
#del:删除列表或者切片删除 list=['apple','peace','banana','orange'] del list[1:2] print(list)
#clear():删除整个列表 list=['apple','peace','banana','orange'] list.clear() print(list)
修改元素
#list[]='':元素赋值
list=['apple','peace','banana','orange'] list[2]='mango'
#list[index:index1]='','',:切片赋值 print(list) list[1:3]='lemon','longan' print(list)
查找元素
list=['apple','peace','banana','orange']
#[index]:查看当前索引的元素 print(list[2])
#[index:index1]:查看当前间隔索引的元素 print(list[1:3])
#[index:]:查看当前索引后面的元素 print(list[2:])
#[:index]:查看当前索引前面的元素 print(list[:1])
#[:]:查看所有元素 print(list[:])
#[:index:index1]:查看第一个索引前面有间隔的元素(第二个索引为间隔数) print(list[:3:2])
#[-1]:查看最后一个元素 print(list[-1])
遍历元素
list=['apple','peace','banana','orange'] for x in list: print(x)
(2)元组
增加元素:元组与列表类似,不同之处在于元组的元素不能修改。
#创建元组只包含一个元素时,需要在元素后面添加逗号
tup=(1998,) print(tup)
#“+”对元组进行连接组合 tup1 = (12, 34.56) tup2 = ('abc', 'xyz') tup3 = tup1 + tup2 print(tup3)
删除元素:元组中的元素值是不允许删除的,但可以用del来删除整个元组
#del :元组被删除后,输出变量会有异常信息
tup1 = (12, 34.56) del tup1 print(tup1)
修改元素
tup1 = (12,34.56) tup1=tup1[0:2] print(tup1) tup1 = (12,34.56) tup1=tup1[1] print(tup1)
查找元素
#[index:]:查找索引后面的元素
tup1 = (12,34.56) print(tup1[1:])
(3)字典
增加元素
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} dict1 = { 'abc': 456 } dict['heihgt']=180 print(dict)
#update():将两个字典相加 dict.update(dict1) print(dict)
删除元素
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First','Height':180} del dict['Age'] print(dict) dict.pop('Name') print(dict) dict.popitem() print(dict) del dict print(dict) dict1 = { 'abc': 456 } dict1.clear() print(dict1)
修改元素
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} dict1 = { 'Name': 'John' } dict['Name']='Mike' print(dict) dict.update(dict1) print(dict)
查找元素
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} print(dict['Name']) print(dict.items()) print(dict.keys()) print(dict.values()) print(dict.get('Age'))
(4)集合
增加元素
list=['apple','peace','banana','orange'] set = set(list) print(set) set.add('lemon') print(set)
删除元素
list={'apple','peace','banana','orange'} list.pop() print(list) list.remove('apple') print(list) list.clear() print(list) del list print(list)
修改元素
list={'apple','peace','banana','orange'} list_1={'dog','cat'} list=list|list_1 print(list) list=list&list_1 print(list)
查找元素
list={'apple','peace','banana','orange'} print(list.__str__())
2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:
(1)列表
- 列表list用" [ ]"表示
- 列表是有序的,通过索引值进行增删改查及遍历
- 列表是可变的,可随时改变
- 列表是可重复的
- 以值的方式存储,通过索引值查找
(2)元组
- 元组tuple用 "( )"表示
- 元组是有序的,与列表相同
- 一旦初始化就不能修改,与列表不同
- 元组是可以重复的
- 以值的方式存储,通过索引值查找
(3)字典
- 字典dict用"{ }"表示
- 字典是无序的,故不能进行索引操作
- 字典是可修改的,通过键(key)进行修改
- 字典的键不可以重复,值可以重复
- 以键值对(key-value)的方式存储,通过键来查找
(4)集合
- 集合set用 "{ }"表示
- 集合是无序的
- 集合可以改变的,用&|-进行集合与或减运算
- 集合是不能重复的
- 以值的方式存储,通过_str_来查找所有元素
和list比较,dict有以下特点:查找和插入的速度极快,不会随着key的增加而变慢;需要占用大量的内存,内存浪费多。而list相反:查找和插入的时间随着元素的增加而增加;占用空间小,浪费内存很少。所以,dict是用空间来换取时间的一种方法。
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
代码如下
# 读文本和格式化单词函数 def get_text(): f = open(r'G:\大三下学期\python\novel.txt', encoding='utf8') #读取文件的全部内容 text = f.read() f.close() #删除不必要的符号 sign = '[].?!:\"\',\n“”' for i in sign: text = text.replace(i, ' ') #把所有字母转换成小写字母 text = text.lower() #把字母每个分隔开 text = text.split() return text #统计数量并排序单词函数 def get_wordsort(wordlist): #排除连词、冠词、代词、系动词无语义词 exclude = {'it', 'if', 'the', 'at', 'for', 'on', 'and', 'in', 'to', 'of', 'a', 'was', 'be', 'were', 'in', 'about', 'from', 'with', 'without', 'an', 'one', 'another' , 'others', 'that', 'they', 'himself', 'itself', 'themselves', 'if', 'when', 'before', 'though', 'although', 'while', 'as', 'as long as', 'i', 'he', 'him', 'she', 'out', 'is', 's', 'no', 'not', 'you', 'me', 'his', 'but','we','us','their','our','her'} wordset = set(wordlist) - exclude #把留下的单词存入字典并统计数量 worddict = {} for q in wordset: worddict[q] = wordlist.count(q) #字典转换成列表对单词进行排序 wordsort = list(worddict.items()) wordsort.sort(key=lambda x: x[1], reverse=True) return wordsort #调用get_text函数获取单词 wordlist = get_text() #调用get_wordsort函数排序单词数量 wordsort=get_wordsort(wordlist) # print(wordsort) #导入pandas依赖,对单词数量进行保存成csv类型文件 import pandas pandas.DataFrame(data=wordsort).to_csv('F:\\zyx\\novel.csv',encoding='utf-8')
运行结果生成novel.csv文件
利用novel.csv文件生成单词TOP(20):
利用word art线上工具生成词云