• 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模块:

  • 相关阅读:
    手写一个call、apply、bind
    setTimeout
    meta标签及Keywords
    用VSCode插件来一键填满Github的绿色格子吧-AutoCommit
    前端工具-定制ESLint 插件以及了解ESLint的运行原理
    JS基础-全方面掌握继承
    JS基础-该如何理解原型、原型链?
    前端中等算法-无重复字符的最长子串
    前端面试 js 你有多了解call,apply,bind?
    博客图片失效?使用npm工具一次下载/替换所有失效的外链图片
  • 原文地址:https://www.cnblogs.com/antigeneral/p/10287864.html
Copyright © 2020-2023  润新知