• collections


    collections 模块

    # 具有名字的元组(具名元组)

      元组的每个元素都有特定的名字,并且可以通过名字获取参数

     1 # # namedtuple 具名元组
     2 # 想表示一个坐标点,x为1,y为2
     3 from collections import namedtuple
     4 # point = namedtuple('坐标',['x','y'])  # 可以传可迭代对象,字符串用空格隔开
     5 point = namedtuple('坐标','x y')  # 等同于上面,不过是字符串中用空格隔开
     6 p = point(1,2)    # 里面的的元素个数必须和namedtuple一至
     7 
     8 print(p)
     9 print(p.x)
    10 print(p.y)
    11 # 取值方式是 元组.名称 # 名称不能加'(引号)
    12 # 而且还保留了索引的取值方式

    # deque 双端队列

    # 两边都能进值,两边都能取值
    
    from collections import deque
    
    q = deque(['a','b','c'])
    
     
    
    '''
    
    方法
    
    .append # 放值(右边)(默认)
    
    .appendleft # 放值(左边)
    
     
    
    .pop # 取值(右边)(默认)
    
    .popleft # 放值(左边)
    
     
    
     
    
    .insert # 从之间插入
    
    # # 特殊点:双端队列可以根据索引在任意位置插值
    
    队列不应该支持任意位置插值
    
    只能在首位插值(不能插值)
    
    '''
    
     
    
    q.append(1)
    
    q.appendleft(2)
    
    q.insert(1,'我的天') # 特殊点:双端队列可以根据索引在任意位置插值
    
     
    
    print(q)
    
    print(q.pop())
    
    print(q.popleft())
    
     

     

    # OrderedDict 有序字典

    # 唯一区别就是字典的有序版本
    
    ###############
    
    # normal_d = dict([('a',1),('b',2),('c',3)])
    
    # print(normal_d)
    
    from collections import OrderedDict
    
    order_d = OrderedDict([('a',1),('b',2),('c',3)])
    
    order_d['x'] = 1
    
    order_d['y'] = 2
    
    order_d['z'] = 3
    
    print(order_d)

    # defaultdict      # 默认值字典

     

    # 默认值字典
    
    # 只要有键,值就是一个你指定的类型
    
    d1 = defaultdict(int) # defaultdict(<class 'int'>, {'y': 0})
    
    d2 = defaultdict(list) # defaultdict(<class 'list'>, {'y': []}) # 字典新建的key对应的value默认就是列表
    
    d3 = defaultdict(bool) # defaultdict(<class 'bool'>, {'y': False})
    
    d1['y']
    
    d2['y']
    
    d3['y']
    
    print(d1)
    
    print(d2)
    
    print(d3)
    
    >>>
    
    defaultdict(<class 'int'>, {'y': 0})
    
    defaultdict(<class 'list'>, {'y': []})
    
    defaultdict(<class 'bool'>, {'y': False})

    Counter# # 统计字符串,然后变成字典{'文字','出现次数'}

    from collections import Counter
    
    s = 'abcdeabcdabcaba'
    res = Counter(s)
    print(res)

     

     

     

  • 相关阅读:
    经典排序算法
    892. 三维形体的表面积
    252. 会议室
    253. 会议室 II
    876. 链表的中间结点
    543. 二叉树的直径
    836. 矩形重叠
    1055. 形成字符串的最短路径
    Android Studio Error: No sdk api is defined in local.properties
    Android Studio打开Android源码工程
  • 原文地址:https://www.cnblogs.com/pscly/p/11209689.html
Copyright © 2020-2023  润新知