• 【python学习笔记】4.字典:当索引不好用时


    【python学习笔记】4.字典:当索引不好用时

    字典是python中唯一内建的map类型

    创建:

    key可以为任何不可改变的类型,包括内置类型,或者元组,字符串

    通过大括号:

    phonebook={'alice': '2341', 'beth':'9102'} 

    通过dict函数

    键值对列表做参数

    >>> items=[("name", "Gumby"), ("age", 42)]
    >>> dict(items)
    {'age': 42, 'name': 'Gumby'}

    键值对参数

    >>> d = dict(name="Gumby", age=42)
    >>> d
    {'age': 42, 'name': 'Gumby'}
    

    基本字典操作

    • len(d) 键值对个数
    • d[k] 取值
    • d[k]=v 修改value
    • del d[k],删除键为k的项
    • k in d,是否存在键为k的项

    格式化字符串 %(key)type

    >>> phonebook={"beth":"9102", "alice":"2341"}
    >>> print "%(beth)s" % phonebook
    9102
    >>>

    字典方法

    • clear:清除所有项,原地操作,无返回
    • copy:返回一个具有相同键值对的新字典,这里实现的是浅复制,copy.deepcopy 可以实现深复制
    • >>> x={"username":"admin", "machines":["foo", "bar", "baz"]}
      >>> x
      {'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
      >>> y=x.copy()
      >>> y
      {'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
      >>> y["username"]="mlh"
      >>> y["machines"].remove("bar")
      >>> y
      {'username': 'mlh', 'machines': ['foo', 'baz']}
      >>> x
      {'username': 'admin', 'machines': ['foo', 'baz']}
      >>> import copy
      >>> z=copy.deepcopy(x)
      >>> z
      {'username': 'admin', 'machines': ['foo', 'baz']}
      >>> z["machines"].remove("foo")
      >>> z
      {'username': 'admin', 'machines': ['baz']}
      >>> x
      {'username': 'admin', 'machines': ['foo', 'baz']}
      >>>
    • fromkeys:使用给定的key建立新字典,每个key对应的默认值为None

    • >>> {}.fromkeys(["name", "age"])
      {'age': None, 'name': None}
      >>>
      >>> dict.fromkeys(["name", "age"], "(unkonwn)")
      {'age': '(unkonwn)', 'name': '(unkonwn)'}
      >>>
    • get 安全访问字典,当key不存在的时候返回None

    • >>> a={}
      >>> a['a']
      Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      KeyError: 'a'
      >>> print a.get("a")
      None
      >>>
    • has_key 返回key是否存在

    • items和iteritems,以列表形式返回字典中的项,列表中的元素为字典中的项,iteritems会返回一个迭代器

    • keys和iterkeys,以列表形式返回字典中key

    • pop,获取给定key的值,然后从字典中移除

    • popitem,弹出一个项

    • setdefault,获取给定key的值,如果没有则设置并返回默认值

    • update 参数字典中项会被添加到旧字典中,若有相同的key则进行覆盖

    • values和itervalues 以列表的形式返回字典中值

  • 相关阅读:
    乐理学习
    hashtable
    vim配置
    SSH & Git
    Java实现单向链表反转
    Java实现二叉树遍历
    Mysql主从配置
    使用VirtualBox虚拟机搭建局域网
    Nginx配置try_files实践一
    Maven package打包webapp项目遇到的问题
  • 原文地址:https://www.cnblogs.com/vc60er/p/7266252.html
Copyright © 2020-2023  润新知