• collection 模块


    关于一些 特殊数据类型的模块

    namedtuple顾名思义,一个带有名字的元祖,他也是跟对象有关的一个

    from collections import namedtuple
    phone = namedtuple('Phone', ['x','y'])
    
    p = phone(1,2)
    print(p.x)
    print(p.y) 

    语法:

    变量名 = namedtuple(‘名称’,['相当于字典里的key,可以写很多'])

    Orderdict 顾名思义,带有顺序的字典。

    正常的命名一个字典的语法格式

    d = dict([('1', 'a'), ('3', 'b'), ('2', 'c'), ('5', 'd'), ('4', 'e'), ('6', 'f')])
    print(d)

    这就是正常的命名一个字典,用内置函数dict,这样命名的字典,我们都知道是无序的。接下来,明明一个有序的字典,其实,就是把前面的dict,换成了Orderdict。

    from collections import OrderedDict
    d = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
    print(d)
    for i in d:
        print(i)

    defaultdict 

    有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。

    即: {'k1': 大于66 'k2': 小于66}
    values = [11, 22, 33,44,55,66,77,88,99,90]
    
    my_dict = {}
    
    for value in  values:
        if value>66:
            if my_dict.has_key('k1'):
                my_dict['k1'].append(value)
            else:
                my_dict['k1'] = [value]
        else:
            if my_dict.has_key('k2'):
                my_dict['k2'].append(value)
            else:
                my_dict['k2'] = [value]
    from collections import defaultdict
    
    values = [11, 22, 33,44,55,66,77,88,99,90]
    
    my_dict = defaultdict(list)
    
    for value in  values:
        if value>66:
            my_dict['k1'].append(value)
        else:
            my_dict['k2'].append(value)

    Counter

    Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。Counter类和其他语言的bags或multisets很相似。

    deque

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

    最新免费视频: http://www.pythonav.com/all/10000.html
  • 相关阅读:
    World Wind Java开发之六——解析shape文件(转)
    World Wind Java开发之五——读取本地shp文件(转)
    laravel 存储base64格式图片
    谷歌分析(Google Analytics) 是什么
    laravel中图片的删除
    js插件---弹出层sweetalert2(总结)
    范仁义web前端介绍课程---5、webstorm的下载安装
    范仁义web前端介绍课程---4、html、css、js初体验
    范仁义web前端介绍课程---3、课程大纲(初步)
    范仁义web前端介绍课程---2、web前端是干嘛的
  • 原文地址:https://www.cnblogs.com/niehaidong111/p/7392011.html
Copyright © 2020-2023  润新知