• python 学习笔记 三 字典


    字典

    Python的高效的key/value哈希表结构叫做"dict", dict的内容可以写成一系列的key:value对并放入{ }中, 相当于: dict = {key1:value1, key2:value2, ...}, 一个空的字典就是俩个大括号{ }. 下面是从一个空字典创建字典以及一些关键点:

    数字, 字符串和元组可以作为字典的key, value可以是任何类型(包括字典).

      ## Can build up a dict by starting with the the empty dict {}
      ## and storing key/value pairs into the dict like this:
      ## dict[key] = value-for-that-key
      dict = {}
      dict['a'] = 'alpha'
      dict['g'] = 'gamma'
      dict['o'] = 'omega'
    
      print dict  ## {'a': 'alpha', 'o': 'omega', 'g': 'gamma'}
    
      print dict['a']     ## Simple lookup, returns 'alpha'
      dict['a'] = 6       ## Put new key/value into dict
      'a' in dict         ## True
      ## print dict['z']                  ## Throws KeyError
      if 'z' in dict: print dict['z']     ## Avoid KeyError
      print dict.get('z')  ## None (instead of KeyError)

    dict函数

    可以使用dict函数, 通过其他映射或者(键, 值)这样的序列对建立字典:

    >>> items = [('name','Gumby'), ('age', 42)]

    >>> d = dict(items)

    >>> d

    {'age':42, 'name': 'Gumby'}

    dict函数也可以通过关键字来创建字典:

    >>> d = dict(name='Gumby', age=42)

    >>> d

    {'age':42, 'name': 'Gumby'}

    基本字典操作与字符串格式化

    • len(d): 返回键值对的数量
    • d[k]: 返回关联到键k上的值
    • d[k]=v: 将值v关联到键k上
    • del d[k]: 删除键为k的项
    • k in d: 检查键为k的项是否在d中, 注意这里查找的是键而不是值

    使用字典格式化字符串:

    >>> phonebook = {'Beth': '9102', 'Alice': '2341'}

    >>> "Alice's phone number is %(Alice)s." % phonebook

    "Alice's phone number is 2341."

    字典方法

      1.clear

    清除字典中所有的项: d.clear(), 清除后d是一个空字典

      2.copy

    返回一个具有相同键-值对的新字典: new_d = d.copy(), 这个方法实现的是浅复制(shallow copy), 也就是说修改了副本中的某个值时, 原字典也会受影响, 为避免这个问题, 采用深复制(deep copy): from copy import deepcopy  new_d = d.deepcopy().

      3.fromkeys

    使用给定的键建立字典, value被设为None.

    >>> d = {}

    >>> d.fromkeys(['name', 'age'])

    >>> d

    {'name':None, 'age':None}

      4.get

    当我们用d[key]访问字典中不存在的项会出现KeyError, 而用get方法就不会:

    >>> d = {}

    >>> d.get('name')

    None

    用get方法访问不存在的键会得到None值, 我们可以自定义None值:

    >>> d.get('name', 'N/A')

    'N/A'

    当键存在, get方法和普通字典查询一样

      5. has_key

    检查字典中是否含有给出的key, 有, 返回True否则返回False: d.has_key(k)

      6.items和iteritems

    items方法将所有字典项以列表方式返回, iteritems的作用大致相同, 但会返回一个迭代器对象而不是列表.

      7.key和iterkeys

    和上面的一样, 只不过列表元素是key

      8.values和itervalues

    和上面一样, 列表元素是value

      9.pop

    用于获得给定键的值, 然后从字典中移除这个键-值: v = d.pop(k)

      10. popitem

    弹出字典中的一个随机项: d.popitem()

      11.setdefault

    类似get, 不同的是, setdefault可以在字不含有key时自动为字典添加相应的键值

    >>> d = {}

    >>> d.setdefault('name', 'bob')

    'bob

    >>> d

    {'name': 'bob'}

    如果不给出value, 会默认使用None.

      12.update

    利用一个字典更新另一个字典: d.update(x), 在d中添加x的项, 若有相同的键, 会被覆盖.

  • 相关阅读:
    批量修改数据库表前缀
    form表单reset重置按钮
    thinkphp禁止模版标签解析
    form 转json,将form表单中的数据序列化数组后转换为Json
    MIME对应表
    zend studio 12汉化和破解
    hadoop一键安装伪分布式
    简明shell入门
    java中readLine()方法为什么有的行读不到?
    using 40 logical processors based on SQL Server licensing SqlServer CPU核心数限制问题
  • 原文地址:https://www.cnblogs.com/ezhengnan/p/3745289.html
Copyright © 2020-2023  润新知