collections,shelve,shutil模块

import collections :

 

from collection import nametuple  #命名元祖

t = namedtuple('汪哥',['a','b','c'])后面的可迭代对象必须是字符串
#汪哥(a=1,b=2,c=3)
t = namedtuple('time_tuple',['年','月','日','时','分','秒'])
t1 = t(18,1,12,13,14,56,897)
print(t1.年)
#18

from collections import Counter #计数
s = 'qqqqqqqqqqeeewerrewqeqw'
''' 字典统计,旧知识.
dic = {}
for i in s:
dic[i] = dic.get[i,0] + 1
print(dic)
'''
c = Counter(s)
print(c)
#Counter({'q': 12, 'e': 6, 'w': 3, 'r': 2})


from collections import defaultdic #默认字典
dic = defaultdict(list) #list()
#dic = defaultdict(lambda :5) #5
print(dic['key'])

dic = {}
lst = [11,223,44,33,55,66,77,88,99]
for i in lst:
if i > 66:
dic.setdefault('k1',[]).append(i)
print(dic)

lst = [11,223,44,33,55,66,77,88,99]
from collection import defaultdic
dic = defaultdict(list)
for i in lst:
if i < 77:
dic['k1'].append[i]
print(dic)

队列: FIFO(first in first out) 先进先出,不能插队
栈: FILO(later in first out ) 后进先出

from collections import deque
d = deque()
d.append('汪哥') #后入
d.append('汪哥')
d.append('汪哥')
d.appendleft('汪哥3')
d.appendleft('汪哥2')
d.appendleft('汪哥1')
d.append('汪哥4')
d.append('汪哥5')
d.append('汪哥6')
d.remove('汪哥5')
print(d)
deque(['汪哥1', '汪哥2', '汪哥3', '汪哥', '汪哥', '汪哥', '汪哥4', '汪哥6'])
deque除了实现list的append()和pop()外,还支持appendleft()和popleft(),这样就可以非常高效地往头部添加或删除元素。

shelve模块:
shelve 模块  字典的键必须是字符串,基于pickle
import shelve
f = shelve.open('ss') #创建了一个文件
f[ 'name'] = 'alex' # 字典的增加
print(f['name']) #字典的查看
f['age'] = 18
print(f['name'])
print(f.get('age'))

print(f.values) #<bound method Mapping.values of <shelve.DbfilenameShelf object at 0x00000187F21194A8>>

for i in f :
print(i)

for i in f.values():
print(i)

for k,v in f.items():
print(k,v)
应用场景:没有明确表明用json 和pickle的时候就使用shelve
json 对比
import json
dic = {'1':2}
f = open('sss',mode='w',encoding='utf-8')
json.dump(dic,f)

f1 = open('sss',mode='r',encoding='utf-8')
new_dic = json.load(f1)
new_dic['age'] = 19
f1.close()

f = open('sss',mode='w',encoding='utf-8')
json.dump(new_dic,f)

坑:
import shelve
f = shelve.open('ss') #创建了一个文件
f[ 'name'] = 'alex' # 字典的增加
f.close()

f1 = shelve.open('ss',flag= 'r')#只读 #创建了一个文件
f1[ 'name'] = 'baoyuan' # 字典的增加
f1.close()

f2 = shelve.open('ss')
print(f2['name'])
shutil模块:

 

posted on 2019-01-18 15:27  antigeneral  阅读(108)  评论(0编辑  收藏  举报

导航