作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753
1.列表,元组,字典,集合分别如何增删改查及遍历。
1.append()增加到最后
li = ['a','b',123,'你好',1] li.append('abc') print(li) 2.insert()插入,按照索引去增加
li = ['a','b',123,'你好',1] li.insert(2,'早') print(li) 3.extend ()迭代的去增
li = ['a','b',123,'你好',1] li.extend('abcdef') print(li) li.extend([1,2,3]) li = ['a', 'b', 123, '你好', 1] 4.pop()按索引进行删除,有返回值 li.pop(1) print(li) li = ['a', 'b', 123, '你好', 1] print(li.pop(1))
5.remove()按照元素去删除
li = ['a','b',123,'你好',1] li.remove('你好') print(li) 6.clear()清空列表元素 li = ['a','b',123,'你好',1] li.clear() print(li) li = ['a', 'b', 123, '你好', 1] del li[1:3] print(li)
7.按照位置去删除,也可切片删除没有返回值。 li = ['a', 'b', 123, '你好', 1] del li[1] print(li) 8.整个列表删除
li = ['a','b',123,'你好',1]
li[0] = '早'
print(li)
9.按切片来改
li = ['a','b',123,'你好',1]
li[0:3] = 'safsafkf'
10.按索引来改
li = ['a','b',123,'你好',1]
li[0] = '早'
print(li)
效果图:
2.元组
增:无
删:无
改:无
查:
tup = ('i','love','u') print(tup[0]) print(tup)
3.字典增删改查
dict = {'hupu': 7, '知乎': 16, '微信': 15} #按相应的键查找 print(dict['知乎']) #增加键值对 dict['淘宝']=20 print(dict['淘宝']) #修改键值对 dict['淘宝']=15.5 print(dict['淘宝']) #删除单个键值对或清空字典 del dict['微信'] print(dict) dict.clear() print(dict)
效果图
4.集合增删改查
增
list=['dog','pig','fish','cat'] set = set(list) print(set) set.add('tiger') print(set) 删 list={'dog','pig','fish','cat'} list.pop() print(list) list.remove('cat') 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={'dog','cat','pig','tiger'} print(list.__str__())
效果图:
总结:
1. 元组和列表有哪些共同点?有哪些不同点?
共同点:
① 他们都属于序列(均是容器对象),都是线性表,可以存储不同类型的内容。
② 都可进行以下操作:
i. 切片操作
ii. 索引访问
iii. 连接操作
iv. 成员关系操作
v. 比较运算操作
vi. 计数:元组长度 len()、最大值 max()、最小值 min()、求和 sum()等。
不同点:
① 元组的声明使用小括号,而列表使用方括号,当声明只有一个元素的元组时,需要在这个元素的后面添加英文逗号;
② 列表是动态的数组,元组是静态的数组。元组声明和赋值后,不能像列表一样添加、删除和修改元素,也就是说元组在程序运行过程中不能被修改。
③ 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。
2. 集合和字典有什么关系?
共同点:
①都是使用花括号{}将任意对象括起来的集合
②他们都是无序的数据集合
③都是一种可变的容器模型(可变的序列)。
不同点:
①存储对象不一样
字典是由”键-值”(key-value)对组成的集合,字典的”值”(key)通过”键”(value)来引用。键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一,且key可存储任意类型对象。
集合不支持下标索引,它是可变的数据类型,集合中的元素是唯一的,且不可以存列表和字典,一般用于元组或者列表中的元素去重。
②打印输出顺序不一样
使用print输出字典的时候,通常输出的顺序和定义的顺序是不一致的;输出集合顺序和定义的一致。
③集合底层是字典实现,集合的所有元素都是字典中的“键对象”。
3.词频统计
3.1下载一长篇小说,存成utf-8编码的文本文件 file
3.2通过文件读取字符串 str
3.3对文本进行预处理
3.4分解提取单词 list
3.5单词计数字典 set , dict
3.6按词频排序 list.sort(key=lambda),turple
3.7排除语法型词汇,代词、冠词、连词等无语义词
自定义停用词表
或用stops.txt
3.8输出TOP(20)
3.9可视化:词云
排序好的单词列表word保存成csv文件
import pandas as pd
pd.DataFrame(data=word).to_csv('big.csv',encoding='utf-8')
主要代码:
import pandas as pd file = open('3.txt', 'r', encoding='utf8') # 排除词汇列表 exclude = {'a', 'an', 'and', 'was', 'as', 'up', 'my', 'it', 'here', 'at', 'll', 'his', 's', 'he', 'that', 'from', 'had', 'have', 'we', 'the', 'i', 'you', 'in', 'on', 'but', 'with', 'not', 'by', 'its', 'for', 'of', 'to'} # 对文本预处理 def getfile(): sep = "'?', '?', '!'," '", "'", ' "', '"',':',':','.',',', ',', '.', '。','“','”',','" text = file.read().lower() for ii in sep: text = text.replace(ii, ' ') return text # 提取单词,单词计数词典 fileList = getfile().split() fileDict = set(fileList) exclude1 = set(exclude) fileDict = fileDict - exclude1 # 统计单词数量 countDict = {} for word in fileDict: countDict[word] = fileList.count(word) print(countDict.items()) word = list(countDict.items()) # 排序单词数量 word.sort(key=lambda x: x[1], reverse=True) print(word) # 输出TOP20 for i in range(20): print(word[i]) pd.DataFrame(data=word).to_csv('3.csv', encoding='utf-8')
线上工具生成词云:
https://wordart.com/create