复合数据类型,英文词频统计

作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753

1.列表,元组,字典,集合分别如何增删改查及遍历。

列表-list
list.append(obj)
增加元素到末尾
list.insert(index, obj)
增加元素到指定位置
index:索引位置
obj:内容
list.extend(list_i)
将list_i列表中的元素增加到list中
list.pop():
默认删除list末尾的元素
list.pop(index)
删除指定位置的元素,index是索引
del list[index]
删除指定位置的元素,index是索引
del list
删除整个列表
list.remove(obj)
移除列表第一个与obj相等的元素
list.clear()
清空列表全部内容
list[index]=obj
修改指定位置的元素
list[index]
通过下标索引,从0开始
list[a:b]
切片,顾头不顾尾

 

元组-tup
tup=tup1+tup2
元组不支持修改,但可以通过连接组合的方式进行增加
del tup
元组不支持单个元素删除,但可以删除整个元组
tup=tup[index1],tup1[index2], ...
tup=tup[index1:index2]
元组是不可变类型,不能修改元组的元素。可通过现有的字符串拼接构造一个新元组
tup[index]
通过下标索引,从0开始
tup[a:b]
切片,顾头不顾尾

 

字典-dict
dict[key]=value
通过赋值的方法增加元素
dict.update(dict_i)
把新的字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict不同的key)
del dict[key]
删除单一元素,通过key来指定删除
del dict
删除字典
dict.pop(key)
删除单一元素,通过key来指定删除
dict.clear()
清空全部内容
dict[key]=value
通过对已有的key重新赋值的方法修改
dict.update(dict_i)
把字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict相同的key)
dict[key]
通过key访问value值
dict.items()
以列表返回可遍历的(键, 值) 元组数组
dict.keys()
以列表返回一个字典所有键值
dict.values()
以列表返回一个字典所有值
dict.get(key)
返回指定key的对应字典值,没有返回none

 

集合-set
set.add(elmnt)
给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。
删 
set.clear()
移除集合中的所有元素。
set.difference_update(set)
移除两个集合中都存在的元素。用于计算差集的集合。
set.discard(value)
移除指定的集合元素。
set.pop()
随机移除一个元素。
set.remove(item)
移除集合中的指定元素。
 改
set.update(set)
修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,
则该元素只会出现一次,重复的会忽略。
 查
set.union(set1, set2...)
返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。

 

 

 

2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:

  • 括号
  • 有序无序
  • 可变不可变
  • 重复不可重复
  • 存储与查找方式
  •  

2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:

括号:

列表用“[]”,元组用“()”,字典和集合用“{}”;

有序无序:

列表和元组有序,字典和集合无序;

可变不可变:

列表、字典和集合可变,元组不可变;

重复不可重复:

列表和元组可重复,字典键不可重复,值可以重复,集合不可重复;

存储与查找方式:

列表以值的方式存储为值,可通过索引查找;

元组以值的方式存储为值,可通过索引查找;

字典以键值对的方式存储为值,一般通过键查找;

集合以值的方式存储为值,可以通过set()来将序列和字典转换为集合。

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
import string
import pandas as pd
def getNumber(x):
    y=x[1]
    return y

file = open('2.txt','r',encoding='UTF-8').read().lower()
s = "'"
for i in s:
    file = file.replace(s,' ')
song = file.split()
exclude = {'a','the','i','you','and','in','but','not','it','s','if','do','m'}
cun = set(song)-exclude
dis = {}
for i in cun:
    dis[i] = song.count(i)
words = list(dis.items())
words.sort(key=getNumber,reverse=True)
#输出前20
for j in range(20):
    print(words[j])
#保存为csv文件
pd.DataFrame(data=words).to_csv(r'3.csv',encoding='UTF-8')

 

 

posted @ 2019-03-22 15:36  斌果  阅读(233)  评论(0编辑  收藏  举报