作业要求来自于
1.列表,元组,字典,集合的增删改查及遍历
操作 | 方法 | 示例 |
增加 | list.append(obj) 增加元素到末尾 | list=['Michael','Bob','Tracy','李三','Tracy','Sarah']list.append('张四')print(list)
|
list.insert(index, obj) 增加元素到指定位置 | list=['Michael','Bob','Tracy','李三','Tracy','Sarah']list.insert(1,'Jack')print(list)
| |
list.extend(list2) 将list2列表中的元素增加到list中 | list=['Michael','Bob','Tracy','李三','Tracy','Sarah']list2=['张四','Jack']list.extend(list2)print(list)
| |
删除 | list.pop(index) 删除指定位置的元素 list.pop() 删除最后一个元素 | list=['Michael','Bob','Tracy','李三','Tracy','Sarah']list2=['张四','Jack']list.pop(1)list2.pop()print(list,list2)
|
修改 | list[index]=obj 修改指定位置的元素 | list=['Michael','Bob','Tracy','李三','Tracy','Sarah']list[2]='张四'print(list)
|
查询
| list[index] 通过下标索引,从0开始 | list=['Michael','Bob','Tracy','李三','Tracy','Sarah']print(list[2])
|
list[a:b] 切片,从哪里到哪里 | list=['Michael','Bob','Tracy','李三','Tracy','Sarah']print(list[1:4])
| |
遍历 | for x in list | list=['Michael','Bob','Tracy','李三','Tracy','Sarah']for x in list: print(x, end=",") |
for i in range(len(list)) | list=['Michael','Bob','Tracy','李三','Tracy','Sarah']for i in range(len(list)): print("序号:", i, " 值:", list[i]) | |
for i,val in enumerate(list) | list=['Michael','Bob','Tracy','李三','Tracy','Sarah']for i, val in enumerate(list): print("序号:", i, " 值:", val)
| |
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])
|
操作 | 方法 | 示例 |
增加 | tup=tup1+tup2 元组不支持修改,但可以通过连接组合的方式进行增加 | tup1=('Michael','Bob','Tracy','李三','Tracy','Sarah')tup2=('张四','Jack')tup=tup1+tup2print(tup)
|
删除 | del tup 元组不支持单个元素删除,但可以删除整个元组 | tup=('Michael','Bob','Tracy','李三','Tracy','Sarah')print(tup)del tupprint(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] 通过下标索引,从0开始 | tup=('Michael','Bob','Tracy','李三','Tracy','Sarah')print(tup[2]) |
tup[a:b] 切片,顾头不顾尾 | tup=('Michael','Bob','Tracy','李三','Tracy','Sarah')print(tup[2:5]) | |
遍历 | for x in (tup) | tup=('Michael','Bob','Tracy','李三','Tracy','Sarah')for x in (tup): print(x) |
操作 | 方法 | 示例 |
增加 | dict[key]=value 通过赋值的方法增加元素 | dict={ 'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}dict['张四']=8print(dict) |
删除 | del dict[key] 删除单一元素,通过key来指定删除 | dict={ 'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}del dict['Bob']print(dict) |
dict.pop(key) 删除单一元素,通过key来指定删除 | dict={ 'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}dict.pop('Tracy')print(dict) | |
修改 | dict[key]=value 通过对已有的key重新赋值的方法修改 | dict={ 'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}dict['Bob']=8print(dict) |
查询
| dict[key] 通过key访问value值 | dict={ 'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}print(dict['李三']) |
dict.items() 以列表返回可遍历的(键, 值) 元组数组 | dict={ 'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}print(dict.items()) | |
dict.keys() 以列表返回一个字典所有键值 dict.values() 以列表返回一个字典所有值 | dict={ 'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}print(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')) | |
遍历 | 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 val in dict.values() | dict={ 'Michael':1,'Bob':5,'Tracy':3,'李三':7,'Tracy':6,'Sarah':9}for val in dict.values(): print(val) | |
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) |
操作 | 方法 | 示例 |
增加 | s.add(obj) 在集合s中添加对象obj | s=set(['Michael','Bob','Tracy','李三','Tracy','Sarah'])s.add('张四')print(s) |
删除 | s.remove(obj) 从集合s中删除对象obj | s=set(['Michael','Bob','Tracy','李三','Tracy','Sarah'])s.remove('Bob')print(s) |
修改 | s[index]=obj 修改指定位置的元素 集合和列表转换 | s=set(['Michael','Bob','Tracy','李三','Tracy','Sarah'])s=list(s)s[2]='张四's=set(s)print(s) |
遍历 | for x in s | s=set(['Michael','Bob','Tracy','李三','Tracy','Sarah'])for x in s: print(x) |
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')
结果如下图:
词云如下图: