• Python 从零学起(纯基础) 笔记 之 collection系列


    Collection系列

     


      1.  计数器(Counter

    Counter是对字典类型的补充,用于追踪值的出现次数  

    ps  具备字典所有功能 + 自己的功能

    Counter

    1 import collections
    2 obj = collections.Counter('haskhflajgahg')
    3 print(obj)
    4 ret = obj.most_common(4)#取前四位(很少用到)
    5 print(ret)

    结果:

    Counter({'a': 3, 'h': 3, 'g': 2, 'l': 1, 'f': 1, 's': 1, 'j': 1, 'k': 1})

    [('a', 3), ('h', 3), ('g', 2), ('l', 1)]

    most_common  elements  items

     1 import collections
     2 obj = collections.Counter('haskhflajgahg')
     3 print(obj)
     4 ret = obj.most_common(4)#取前四位(很少用到)
     5 print(ret)
     6 print('-----分割符-------')
     7 for item in obj.elements():
     8     print(item)
     9 print('-----分割符-------')
    10 for k,v in obj .items():
    11     print(k,v)

    结果:

    Counter({'h': 3, 'a': 3, 'g': 2, 'k': 1, 's': 1, 'j': 1, 'l': 1, 'f': 1})

    [('h', 3), ('a', 3), ('g', 2), ('k', 1)]

    -----分割符-------

    k

    h

    h

    h

    s

    j

    a

    a

    a

    l

    f

    g

    g

    -----分割符-------

    k 1

    h 3

    s 1

    j 1

    a 3

    l 1

    f 1

    g 2

     

    elements   =》  原生的值

    items      =》  处理过后的数据

    1 import  collections
    2 obj = collections.Counter(['11','22','33','22'])
    3 print(obj)
    4 obj.update(['Young','11','33'])
    5 print(obj)
    6 obj.subtract(['Young','11','33'])
    7 print(obj) 

    2.  有序字典(orderedDict

    orderedDict是对字典类型的补充,他记住了字典元素添加的顺序

    3.   默认字典

    Defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型

     1 from collections import defaultdict
     2 
     3 values = [11,22,33,44,55,66,77,88,99,100]
     4 my_dict = defaultdict(list)
     5 for value in values:
     6     if value>66:
     7         my_dict['k1'].append(value)
     8     else:
     9         my_dict['k2'].append(value)
    10 print(my_dict)

    结果:

    defaultdict(<class 'list'>, {'k2': [11, 22, 33, 44, 55, 66], 'k1': [77, 88, 99, 100]})

    4.  可命名元组(namedtuple

    根据namedtuple可以创建一个包含tuple所有功能以及其他功能的类型

    1 import collections
    2 #new a class , defaultdict
    3 MytupleClass = collections.namedtuple('MytupleClass',['x','y','z'])
    4 print(help(MytupleClass))
    5 obj = MytupleClass(11,22,33)
    6 print(obj.x)
    7 print(obj.y)
    8 print(obj.z)

     

    5.  双向队列(deque

     1 import  collections
     2 d = collections.deque()
     3 d.append('1')
     4 d.append('10')
     5 d.appendleft('1')
     6 print(d)
     7 r = d.count('1')
     8 print(r)
     9 d.extend(['yy','uu','ii'])
    10 print(d)
    11 d.extendleft(['1','2'])
    12 print(d)
    13 d.rotate(3)
    14 print(d)

    结果:

    deque(['1', '1', '10'])

    2

    deque(['1', '1', '10', 'yy', 'uu', 'ii'])

    deque(['2', '1', '1', '1', '10', 'yy', 'uu', 'ii'])

    deque(['yy', 'uu', 'ii', '2', '1', '1', '1', '10'])

    6.  单向队列

    1 import queue
    2 # d = collection.deque()
    3 q = queue.Queue()
    4 q.put('123')
    5 q.put('456')
    6 print(q.qsize())
    7 print(q.get())
    8 print(q.get())

    结果:

    2

    123

    456

  • 相关阅读:
    Net中应用 Redis 扩展类
    【ASP.Net MVC3 】使用Unity 实现依赖注入
    NET平台常用的框架整理
    ABP 基于DDD的.NET开发框架 学习(三)创建模块:任务管理
    ABP 基于DDD的.NET开发框架 学习(二)创建实体
    ABP 基于DDD的.NET开发框架 学习(一)
    生成二维码图片
    淘宝图片指纹匹配功能c#实现
    webAPI中“System.Web.Http.HttpConfiguration”不包含“EnableSystemDiagnosticsTracing”的定义解决办法
    NuGet包 安装相关指令
  • 原文地址:https://www.cnblogs.com/Bro-Young/p/5808379.html
Copyright © 2020-2023  润新知