zoukankan      html  css  js  c++  java
  • python中的字典

    1、字典的合并

    # 第一种 用Python的内置方法,dict与**解包的方式
    >>> a = {'name':1,'b':2}
    >>> b = {'name':1, 'c':10}
    >>> c = dict(a, **b)
    >>> c
    {'name': 1, 'b': 2, 'c': 10}
    
    
    # 第二种 用字典的update()方法
    # 可以带权重的,是用b中的元素将a中的元素更新,a的元素会发生改变,但是内存地址不会发生改变
    >>> a
    {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    >>> b = {'c':10,"d":11}
    >>> a.update(b)
    >>> a
    {'a': 1, 'b': 2, 'c': 10, 'd': 11}
    
    
    # 第三种(python3.5以上)
    >>> a = {'a':1,"b":2}
    >>> b = {'c':3,"d":4}
    >>> c = {**a,**b}
    >>> c
    {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    
    
    # 第四种
    # python2.7中
    >>> c = dict(a.items()+(b.items())
    >>> c
    {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    
    # pyhton3中
    >>> c = dict(list(a.items())+list(b.items()))
    >>> c
    {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    # 第五种, 利用cllections模块中的ChainMap类
    >>> from collections import ChainMap
    >>> a = {'a':1,'b':2}
    >>> b = {'a':12,'c':22,'b':1}
    >>> c = ChainMap(a, b)
    >>> c
    ChainMap({'a': 1, 'b': 2}, {'a': 12, 'c': 22, 'b': 1})
    >>> dict(c)
    {'b': 2, 'a': 1, 'c': 22}
    >>> c = ChainMap(b, a)
    >>> dict(c)
    {'b': 1, 'a': 12, 'c': 22}
    

      

     

     

    2、字典中的get与setdefault方法

    字典常用的取值方式为dict[key],但是这样存在一个问题就是,当key不存在于字典中时,会报错,所以,如果不希望报错,就可以使用get与setdefault方法。

    >>> a
    {'a': 1, 'b': 2, 'c': 10, 'd': 11}
    >>> a.setdefault('c',None)
    10
    >>> a.setdefault('w',1000)
    1000
    >>> a
    {'a': 1, 'b': 2, 'c': 10, 'd': 11, 'w': 1000}
    >>> a.get('e',20)
    20
    >>> a
    {'a': 1, 'b': 2, 'c': 10, 'd': 11, 'w': 1000}
    

    3、将两个列表转化为字典

      利用内置zip方法,将两个列表转化为zip对象,然后利用dict方法,将zip对象转化为字典

    >>> c = dict(zip([1, 2, 3, 4, 5, 6, 7], ['a', 'c', 'b', 'f', 'd', 'e', 'g']))
    >>> c
    {1: 'a', 2: 'c', 3: 'b', 4: 'f', 5: 'd', 6: 'e', 7: 'g'}

    其中zip对象可以用for循环遍历,会发现是两个列表中索引对应的一对对的元组。

    >>> a = zip([1,2],[3,4])
    >>> a
    <zip object at 0x000001F75C8D0608>
    >> for i in a:
    ...     print(i)
    ...     
    (1, 3)
    (2, 4)
  • 相关阅读:
    linux 树型显示文件 tree ls tree 命令
    Linux常用命令大全
    My kingdom for a good timer! 规格严格
    org.dom4j.DocumentException: no protocol 规格严格
    利用GetObject("WinMgmts:")获取系统信息 规格严格
    给力URL 规格严格
    几个Servlet小Sample网站 规格严格
    使用SQL PLUS生成报表 规格严格
    High Resolution Timer in Java 5 规格严格
    GC调优文章精选:逐步添加 规格严格
  • 原文地址:https://www.cnblogs.com/Frange/p/8960945.html
Copyright © 2011-2022 走看看