复杂数据类型

https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2696
1.列表,元组,字典,集合的增删改查及遍历。

lsit 列表:

classmates = ['Michael', 'Bob', 'Tracy']
增:
classmates.insert(1, 'Jack')
classmates.append('Adam') #可变有序表直接在末尾追加元素
删:
classmates.pop() #删除末尾元素
classmates.pop(1) #删除指定位元素
改:
classmates[1] = 'Sarah' #直接赋值给对应的索引位置
查:
classmates[0] #用索引来访问list中每一个位置的元素
classmates[-1] #如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元
tuple 元祖:

tuple一旦初始化就不能修改
classmates = ('Michael', 'Bob', 'Tracy')
tuple没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。

tuple的定义:  t = (1, 2) #必须确认tuple的元素,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义

dict 字典:

dict>>dictionary

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
增:d['Adam'] = 67 #直接插入key和value

查:d['Bob'] #根据key查询

改:d['Bob']=78

删:d.pop('Bob')

and 由于一个key只能对应一个value,所以,所以,多次对一个key放入value,
后面的值会把前面的值冲掉,如果key不存在,dict就会报错,要避免key不存在的错误,
有两种办法,一是通过in判断key是否存在,二是通过dict提供的get()方法,
如果key不存在,可以返回None,或者自己指定的value
set :

s = set([1, 2, 3]) #set会过滤重复元素

增:
s.add(key)
删: 
s.remove(key)

列表,元组,字典,集合的联系与区别:

list是一种有序的集合,可以随时添加和删除其中的元素。

tuple和list非常类似,但是tuple一旦初始化就不能修改.

list和tuple是Python内置的有序集合,一个可变,一个不可变。

dict全称dictionary(字典),在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
而list相反:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。

词频统计:

import pandas as pd
def gettxt():
    make = '.,;:?!-_""'''
    with open('test.txt', "r", encoding="utf8", errors="ignore") as  f:
        txt = f.read().lower()
    for exc in make:
        txt = txt.replace(exc,'')
    return txt
bigList = gettxt().split()
bigSet = set(bigList)
with open('stops.txt',"r",encoding="utf8",errors="ignore") as  f:
   exclude = f.read().lower().split()

bigSet = bigSet - set(excludes)
bigDict = {}
for word in bigSet:
    bigDict[word] = bigList.count(word)
word=list(bigDict.items())
print(word)
word.sort(key=lambda x:x[1],reverse=True)
pd.DataFrame(data=word).to_csv('big.csv',encoding='utf-8')

 

posted @ 2019-03-11 21:14  prous  阅读(189)  评论(0编辑  收藏  举报