作业要求来自于 https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753
1.列表,元组,字典,集合分别如何增删改查及遍历。
- 列表
1.增加
list.append(obj)
增加元素到末尾
LOL = ['阿达', '阿萨德']
LOL.append('AA')
print(LOL)

list.insert(index, obj)
增加元素到指定位置
LOL = ['s是', '阿萨德']
LOL.insert(1, '爱上')
print(LOL)

list.extend(list2)
将list2列表中的元素增加到list中
LOL = ['AA', '宝贝']
YXLM=['存储', '等待']
LOL.extend(YXLM)
print(LOL)

2.删除
list.pop(index)
删除指定位置的元素
LOL = ['吃v', '存储', '这种']
LOL.pop()
print(LOL)

list.pop()
删除最后一个元素
LOL = ['吉格斯', '泽拉斯', '杰斯'] LOL.pop(1) print(LOL)

3.改
LOL = ['AA', '宝贝', '是是是']
LOL[2]='存储'
print(LOL)

4.查找
通过切片方式取值
|
1
2
|
LOL = ['吉格斯', '泽拉斯', '杰斯', '塞拉斯']print(LOL[0:2]) |

取下标后面所有的值
|
1
2
|
LOL = ['吉格斯', '泽拉斯', '杰斯', '塞拉斯']print(LOL[1:]) |

取下标前面所有的值
|
1
2
|
LOL = ['吉格斯', '泽拉斯', '杰斯', '塞拉斯']print(LOL[:3]) |

取所有的值
|
1
2
|
LOL = ['吉格斯', '泽拉斯', '杰斯', '塞拉斯']print(LOL[:]) |

按位置取值
|
1
2
|
LOL = ['吉格斯', '泽拉斯', '杰斯', '塞拉斯']print(LOL[0]) |

5.遍历
list=['迪丽热巴','古力娜扎','马尔扎哈']
for l in list:
print(l)

- 元组
- 另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改
- 增加
tuple1=('维恩', '大嘴', '奎因') tuple2=('璐璐', '奶妈', '风女') tuple=tuple1+tuple2 print(tuple)
- 删除
tuple1=('维恩', '大嘴', '奎因') print(tuple1) del tuple1 print(tuple1)
- 改
tuple1=('维恩', '大嘴', '奎因') tuple1=list(tuple1) tuple1[2]='卢锡安' print(tuple1)
- 查找
通过下标索引,从0开始
tuple1=('维恩', '大嘴', '奎因') print(tuple1[1])

切片,顾头不顾尾
|
1
2
|
tuple1=('维恩', '大嘴', '奎因')print(tuple1[:2]) |

5.遍历
tuple=('迪丽热巴','古力娜扎','马尔扎哈')
for t in tuple:
print(t)

- 字典
1.增加
dict={'盲僧':6300,'寒冰':450}
dict["疾风剑豪"]=100
print(dict)

2.删除
|
1
2
3
|
dict={'盲僧':6300,'寒冰':450}del dict['寒冰']print(dict) |

|
1
2
3
|
dict={'盲僧':225,'寒冰':450}
|

3.改
dict={'盲僧':6300,'寒冰':450}
dict["寒冰"]=3150
print(dict)

4.查找
通过key访问value值
|
1
2
|
dict={'盲僧':6300,'寒冰':450}print(dict['寒冰']) |

以列表返回可遍历的(键, 值) 元组数组
|
1
2
|
dict={'盲僧':6300,'寒冰':450}print(dict.items()) |

5.遍历
dict={'陈泽诚'':21','迪丽热巴'':27'}
for d in dict:
print(d)

- 集合
- 增加
s=set(['疾风剑豪','盲僧']) s.add('诺克萨斯之手') print(s)
- 删除
s=set(['疾风剑豪','盲僧']) s.remove('盲僧') print(s)
- 改
s=set(['one', 'two']) s=list(s) s[1]= 'three' s=set(s) print(s)
- 遍历
s=set(['测试', 'key']) for x in s: print(x)
2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:
(1)列表
- 列表list,用中括号“[ ]”表示
- 列表是一组任意类型的值,按照一定顺序组合而成的
- 可以随时添加删除修改其中的元素
- 元素可重复
- 存储时每一个元素被标识一个索引,每当引用时,会将这个引用指向一个对象,所以程序只需处理对象的操作
(2)元组
- 元组tuple,用小括号“( )”表示
- 与列表相同,有序
- 一旦初始化就不能修改
- 元素可重复
- 与列表相似,元组是对象引用的数组
(3)字典
- 字典dict,用大括号“{key,value}”表示
- 字典中的项没有特定顺序,以“键”为象征
- 因为是无序,故不能进行序列操作,但可以在远处修改,通过键映射到值
- key不能重复
- 字典存储的是对象引用,不是拷贝,和列表一样
(4)集合
- 集合set,用小括号“( )”表示
- 无序
- 可变,可以添加和删除元素
- 无重复
- 与列表相似
3.词频统计
|
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
28
29
30
31
32
33
34
35
|
import pandas as pdfile = open('cipher.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)# 输出TOP20for i in range(20): print(word[i])pd.DataFrame(data=word).to_csv('yyy.csv', encoding='utf-8') |
-
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
