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

作业要求来自于 https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753

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

  • 列表

1.增加 

list.append(obj)

增加元素到末尾

LOL = ['疾风剑豪', '盲僧']
LOL.append('光辉女郎')
print(LOL)

list.insert(index, obj)

增加元素到指定位置

LOL = ['疾风剑豪', '盲僧']
LOL.insert(1, '诺克萨斯之手')
print(LOL)

list.extend(list2)

将list2列表中的元素增加到list中

LOL = ['疾风剑豪', '盲僧']
YXLM=['EZ', '塞拉斯']
LOL.extend(YXLM)
print(LOL)

2.删除

list.pop(index)

删除指定位置的元素

LOL = ['吉格斯', '泽拉斯', '杰斯']
LOL.pop()
print(LOL)

list.pop()

删除最后一个元素

LOL = ['吉格斯', '泽拉斯', '杰斯']
LOL.pop(1) 
print(LOL)

 

3.改

LOL = ['吉格斯', '泽拉斯', '杰斯']
LOL[2]='金克斯'
print(LOL)

 

4.查找

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

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

 

 

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

  

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

  

按位置取值

LOL = ['吉格斯', '泽拉斯', '杰斯', '塞拉斯']
print(LOL[0])

  

 5.遍历

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

 

 

 

  • 元组
  •  另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改
  1. 增加
    tuple1=('维恩', '大嘴', '奎因')
    tuple2=('璐璐', '奶妈', '风女')
    tuple=tuple1+tuple2
    print(tuple)

  2. 删除
    tuple1=('维恩', '大嘴', '奎因')
    print(tuple1)
    del tuple1
    print(tuple1)

  3. tuple1=('维恩', '大嘴', '奎因')
    tuple1=list(tuple1)
    tuple1[2]='卢锡安'
    print(tuple1)

  4. 查找

       通过下标索引,从0开始

tuple1=('维恩', '大嘴', '奎因')
print(tuple1[1])

 

      切片,顾头不顾尾

tuple1=('维恩', '大嘴', '奎因')
print(tuple1[:2])

   5.遍历

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

 

  • 字典

1.增加

dict={'盲僧':6300,'寒冰':450}
dict["疾风剑豪"]=100

print(dict)

 

2.删除

 

dict={'盲僧':6300,'寒冰':450}
del dict['寒冰']
print(dict)

 

dict={'盲僧':6300,'寒冰':450}
dict.pop('寒冰')
print(dict)

 

 

3.改

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

 

4.查找

 通过key访问value值

dict={'盲僧':6300,'寒冰':450}
print(dict['寒冰'])

  

以列表返回可遍历的(键, 值) 元组数组

dict={'盲僧':6300,'寒冰':450}
print(dict.items())

  

 5.遍历

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

 

 

 

  • 集合
  1. 增加
    s=set(['疾风剑豪','盲僧'])
    s.add('诺克萨斯之手')
    print(s)

     

     

  2. 删除
    s=set(['疾风剑豪','盲僧'])
    s.remove('盲僧')
    print(s)

     

     

  3. s=set(['疾风剑豪', '盲僧'])
    s=list(s)
    s[1]= '皇子'
    s=set(s)
    print(s)

     

     

  4. 遍历
    s=set(['疾风剑豪', '盲僧'])
    for x in s:
        print(x)

     

     

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

(1)列表

  • 列表list,用中括号“[ ]”表示
  • 列表是一组任意类型的值,按照一定顺序组合而成的 
  • 可以随时添加删除修改其中的元素
  • 元素可重复
  • 存储时每一个元素被标识一个索引,每当引用时,会将这个引用指向一个对象,所以程序只需处理对象的操作

(2)元组

  • 元组tuple,用小括号“( )”表示
  • 与列表相同,有序
  • 一旦初始化就不能修改
  • 元素可重复
  • 与列表相似,元组是对象引用的数组

(3)字典

  • 字典dict,用大括号“{key,value}”表示
  • 字典中的项没有特定顺序,以“键”为象征 
  • 因为是无序,故不能进行序列操作,但可以在远处修改,通过键映射到值
  • key不能重复
  • 字典存储的是对象引用,不是拷贝,和列表一样

(4)集合

  • 集合set,用小括号“( )”表示
  • 无序
  • 可变,可以添加和删除元素
  • 无重复
  • 与列表相似

 

3.词频统计

import pandas as pd
file = 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)

# 输出TOP20
for 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

 

 

 
 

转载于:https://www.cnblogs.com/StuCzc/p/10543341.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值