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

    1.字典的比较

    字典的比较顺序如下:

    1. 先比较字典的元素的个数,那个多,就哪个大;
    2. 比较字典的键,在比较字典的键的时候,需要注意的是比较的顺序是按照keys返回值来进行的比较;
    3. 比较字典的值,值也是按照items返回值来进行比较,主要就是按照数字和字母的大小比较;
    4. 如果以上的比较都相等,那么就都是相等的。

    cmp(dict1,dict2):如果两个字典的元素相同返回0,如果字典dict1大于字典dict2返回1,如果字典dict1小于字典dict2返回-1。

    >>>dict1={'name':'af','better':'yes'}
    >>> dict2={'age':'12'}
    >>> cmp(dict1,dict2)
    1
    >>> dict1={'name':'kel'}
    >>> dict2={}
    >>> cmp(dict1,dict2) #dict1的元素比dict2的多
    1
    >>> dict3={'name':'a'}
    >>> cmp(dict1,dict3) #dict1的kel比a大,字母k在a的后面
    1
    >>> dict4={'name':'kel','age':27}
    >>> dict5={'name':'mel','age':17} #比较的时候,根据keys返回的比较,所以27比17大,而不是比较我们看到的顺序
    >>> cmp(dict4,dict5)
    1
    #keys的顺序是'age','name'

    2.字典的合并

    1)借助dict(d1.items() + d2.items())的方法

    >>> d1={'a':'1','b':'2'}
    >>> d2={'c':'3'}
    >>> dict(d1.items()+d2.items())
    {'a': '1', 'c': '3', 'b': '2'}
    >>> 
    >>> dict(d2.items()+d1.items())
    {'a': '1', 'c': '3', 'b': '2'}
    >>> 
    >>> #有相同的key值,会合并
    >>> d3={'c':'3','b':'4'}
    >>> dict(d3.items()+d1.items())
    {'a': '1', 'c': '3', 'b': '2'}
    >>> dict(d1.items()+d3.items())
    {'a': '1', 'c': '3', 'b': '4'}

    备注:

    • d1.items()获取字典的键值对的列表
    • d1.items() + d2.items()拼成一个新的列表
    • dict(d1.items()+d2.items())将合并成的列表转变成新的字典

    2)借助字典的update()方法

    >>> d1 
    {'a': '1', 'b': '2'}
    >>> d3
    {'c': '3', 'b': '4'}
    >>> d4={}
    >>> d4.update(d1)
    >>> d4
    {'a': '1', 'b': '2'}
    >>> d4.update(d3)
    >>> d4
    {'a': '1', 'c': '3', 'b': '4'}
    >>> #使用copy
    >>> d4=d1.copy()
    >>> d4
    {'a': '1', 'b': '2'}
    >>> d4.update(d3)
    >>> d4
    {'a': '1', 'c': '3', 'b': '4'}

    3)借助字典的dict(d1, **d2)方法

    >>> d1 
    {'a': '1', 'b': '2'}
    >>> d3
    {'c': '3', 'b': '4'}
    >>> 
    >>> dict(d1,**d3)
    {'a': '1', 'c': '3', 'b': '4'}
    >>> dict(d3,**d1)
    {'a': '1', 'c': '3', 'b': '2'}

    4)借助字典的常规for循环处理方法

    >>> d1
    {'a': '1', 'b': '2'}
    >>> d3
    {'c': '3', 'b': '4'}
    >>> d4={}
    >>> 
    >>> for i,v in d1.items():
    ...     d4[i]=v
    ... 
    >>> d4
    {'a': '1', 'b': '2'}
    >>> for i,v in d3.items():
    ...     d4[i]=v
    ... 
    >>> d4
    {'a': '1', 'c': '3', 'b': '4'} 
  • 相关阅读:
    js四舍五入
    文本框只能输入整数,输入其他的自动不显示
    [转]关于C#程序部署到Android
    ajax在火狐中传中文出现乱码的解决方法
    Vue 记录 Cannot read property '_withTask' of undefined
    vs中 VMDebugger未能加载导致异常
    System.InvalidOperationException: 支持“XXX”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。
    eclipse中将java项目转换成javaweb项目
    Android之SOAP协议与WebService服务器交互,解决超时的问题
    SymmetricDS 快速和灵活的数据库复制
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/10563685.html
Copyright © 2011-2022 走看看