zoukankan      html  css  js  c++  java
  • 083 conllections模块

    conllections模块

    • conllecctions是python内建的一个集合模块,提供了许多有用的集合类

    1.有名元组

    • tuple是元组,它是可以表示一个不变的集合比如一个坐标的点就可以表示成:

      p = (1,2)
      
    • 实际上我们通过一个这样的元组很难想象它是已个坐标轴

    • numedtuple有名元组表示

      from collections import namedtuple
      Point = namedtuple('Point', ['x', 'y'])
      p = Point(1, 2)
      p.x # 1
      p.y # 2
      

    2.nametuple有名元组的作用

    • namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。

    • 这样一来,我们用namedtuple可以很方便地定义一种数据类型,它具备tuple的不变性,又可以根据属性来引用,使用十分方便。

      # 默认字典
      from collections import defaultdict
      # 用匿名函数来给他一个默认值
      dic = defaultdict(lambda :'nan')  # dic = {}  # 如果找不到赋了一个默认值
      dic['a'] = 1
      print(dic['a'])
      print(dic['c'])
      

    3.deque

    • 使用list存储数据时,按索引访问元素很快,但是插入和删除元素就很慢了,因为list是线性存储,数据量大的时候,插入和删除效率很低。

    • deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈:

      • list追加值-->线性表

        lis = [1,2,3]  # 线性表
        lis.append(4)
        print(lis)
        # [1,2,3,4]
        
      • 用deque实现向表的两端都追加元素,这就是双端列表的特性

        • de.append() 在链表的后面追加元素,这个和列表追加是一样的
        • de.appendleft()在链表的开头追加元素,这个是用列表很难实现的
        • de.popleft()从链表的开头删除元素
        from collections import deque  # 链表
        
        de = deque([1,2,3])
        de.append(4)
        print(de)
        de.appendleft(0)
        print(de)
        de.popleft()
        de.popleft()
        print(de)
        

    4.计数器Counter

    • 是一个简单的计数器,例如,统计字符出现的个数:

    • 我们之前学习数据类型的时候,计数都是用字典来实现的

      from collections import Counter
      s= 'programming'
      
      c = Counter()  # 字典
      for i in s:
          c[i] +=1
      print(c)
      
      # Counter({'r': 2, 'g': 2, 'm': 2, 'p': 1, 'o': 1, 'a': 1, 'i': 1, 'n': 1})
      
  • 相关阅读:
    QQ企业邮箱+Spring+Javamail+ActiveMQ(发送企业邮件)
    Notepad++使用图解
    Sublime Text 2安装图解
    IDE UltraEdit 图文激活+安装教程
    光猫与普通的家用猫
    通过Java Api与HBase交互(转)
    HBase配置性能调优(转)
    HBase Java API类介绍
    hbase shell基础和常用命令详解(转)
    HBase体系结构(转)
  • 原文地址:https://www.cnblogs.com/XuChengNotes/p/11402845.html
Copyright © 2011-2022 走看看