• Python 字典(联合内存、联合数组)


    字典

        Python有一个内建数据类型是字典(Dictionaries)。字典在某些语言中可能称为“联合内存”("associative memories'')或“联合数组”("associative arrays'')。序列是以连续的整数为索引,与此不同的是,字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。如果元组中只包含字符串和数字,它可以做为关键字,如果它直接或间接的包含了可变对象,就不能当做关键字。不能用链表做关键字,因为链表可以用它们的 append() 和 extend() 方法,或者用切片、或者通过检索变量来即时改变。
       理解字典的最佳方式是把它看做无序的关键字:值对( key:value pairs )集合,关键字必须是互不相同的(在同一个字典之内)。一对大括号创建一个空的字典:{}。初始化链表时,在大括号内放置一组逗号分隔的关键字:值对,这也是字典输出的方式。
       字典的主要操作是依据关键字来存储和析取值。也可以用del来删除关键字:值对。如果你用一个已经存在的关键字存储值,以前为该关键字分配的值就会被遗忘。试图析取从一个不存在的关键字中读取值会导致错误。
       字典的keys() 方法返回由所有关键字组成的链表,该链表的顺序不定(如果你需要它有序,只能调用关键字链表的sort()方法)。使用字典的 has_key() 方法可以检查字典中是否存在某一关键字。

    这是一个关于字典应用的小示例:

    >>> tel = {'jack': 4098, 'sape': 4139}
    >>> tel['guido'] = 4127
    >>> tel{'sape': 4139, 'guido': 4127, 'jack': 4098}
    >>> tel['jack']4098
    >>> del tel['sape']
    >>> tel['irv'] = 4127
    >>> tel{'guido': 4127, 'irv': 4127, 'jack': 4098}
    >>> tel.keys()['guido', 'irv', 'jack']
    >>> tel.has_key('guido')
    True

        链表中存储关键字-值对元组的话,字典可以从中直接构造。关键字-值对来自一个模式时,可以用链表推导式。简单的表达关键字-值链表。

    >>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
    {'sape': 4139, 'jack': 4098, 'guido': 4127} >>> dict([(x, x**2) for x in vec]) # use a list comprehension
    {2: 4, 4: 16, 6: 36}

    循环技巧

        在字典中循环时,关键字和对应的值可以使用 items() 方法同时解读出来。

    >>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
    >>> for k, v in knights.items():
    ... print k, v
    ...
    gallahad the purerobin the brave

    特殊的URL字符串处理:

    >>> import urllib
    >>> import urlparse
    >>> params = urllib.urlencode({'tbpm':'4','status':'false'})
    >>> params
    'status=false&tbpm=4'
  • 相关阅读:
    日常排雷:redis报错 could not get a resource from the pool
    阿里云centos服务器tomcat启动后,浏览器请求无响应
    并发生产顺序单据号测试
    json 数据 格式,请求接口,部分字段无法注入
    baomidou 动态数据源@DS 使用问题
    SpringMVC框架深入(八)--SpringMVC原理
    Spring框架深入(七)--json数据交互
    框架理论深入(六)--拦截器
    Spring框架深入(五)--文件上传和异常处理
    int和Integer的区别
  • 原文地址:https://www.cnblogs.com/liqiu/p/3359307.html
Copyright © 2020-2023  润新知