zoukankan      html  css  js  c++  java
  • 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'
  • 相关阅读:
    编译impala2.0.0
    CentOS 7 安装Boost 1.61
    CentOS 6.4 编译安装LLVM3.3,Clang和Libc++
    批量修改dos文件到unix
    git win7 dos下设置代理
    vim源码编译启用python
    一张图看懂天津市教育云服务平台
    关于git中Pageant开机启动且自动关联秘钥
    Windows 10安装pip方法
    大数据中心的业务研发路线
  • 原文地址:https://www.cnblogs.com/liqiu/p/3359307.html
Copyright © 2011-2022 走看看