作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753
1.列表,元组,字典,集合分别如何增删改查及遍历。
列表操作:
#列表 list1 = ['speakingSirqin', 'softqin', 1999, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ["a", "b", "c", "d"] #输出 print(list1) print(list2) print(list3) print(list2[0:2])#下标0开始,下标2结束,但不包含下标2所对应的上键(元素)' #增加 list1.insert(2,'lili') list1.insert(5,'qin') print(list1) #删除 list2.pop(0) print(list2) #修改 list3[1]='A' print(list3) #查找 index=list3.index('c') print("找到c在列表3的下标为:",index) #列表的增删改查
元组操作:
#元组 tup1 = ('Google', 'Runoob', 1997, 2000) tup2 = (1, 2, 3, 4, 5, 8) tup3 = "a", "b", "c", "d" #输出 print(tup1) print(tup2) print(tup3) print(tup1[0]) print(tup2[1:3]) #连接元组 tup4=tup1+tup2+tup3 print(tup4)
字典操作:
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} print ("dict['Name']: ", dict['Name']) print ("dict['Age']: ", dict['Age'])
集合操作:
num = {1,2,3,4,5} #定义一个集合 print('增加: 元素原本为:{}'.format(num)) num.add(6) print('num.add(6):增加一个元素 结果:{}'.format(num)) print('删除: 元素原本为:{}'.format(num)) num.remove(1) print('num.remove(1):删除1这个元素,若集合没有1则出错 结果:{}'.format(num)) num.pop() print('num.pop():随机删除一个元素, 结果:{}'.format(num)) print('查询: 元素原本为:{}'.format(num)) print('1 in num:查询1这个元素是否存在,是则是true, 结果:{}'.format(1 in num)) print('遍历: 元素原本为:{}'.format(num)) print('for num in set1:print(num):便利整个集合 结果:') for num1 in num: print(num1)
2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:
- 括号
- 有序无序
- 可变不可变
- 重复不可重复
- 存储与查找方式
列表 | 元组 | 字典 | 集合 | |
括号 | [] | () | {} | {}或set() |
有序无序 | 有序 | 有序 | 无序 | 无序,自动正序 |
可变不可变 | 可变 | 不可变 | 可变 | 不可变 |
重复不重复 | 是 | 是 | 否 | 是 |
存储方式 | 值 | 值 | 键(不可重复) |
键值对(键不能重复) |
3.词频统计
-
1.通过文件读取字符串 str
2.对文本进行预处理
3.分解提取单词 list
4.单词计数字典 set , dict
5.按词频排序 list.sort(key=lambda),turple
代码:
import string import pandas as pd ##定义获取文件并处理函数 def getstr(): txt = open(r"..python1what", "r").read().lower() for c in string.punctuation: txt = txt.replace(c, " ") return txt '''将文本分成单词''' txtDC=getstr().split() #过滤无意词 ex = {'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'} txtSet=set(txtDC)-ex '''单词统计''' txtDic = {} for word in txtSet: txtDic[word] = txtDC.count(word) #排序 wordList = list(txtDic.items()) wordList.sort(key=lambda x:x[1],reverse=True) #输出top20 for i in range(20): print(wordList[i]) #保存为csv文件 pd.DataFrame(data=wordList).to_csv('ToMyTex.csv',encoding='utf-8')
运行截图:
生成词汇图: