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'} 
posted @ 2019-03-20 11:09  声声慢43  阅读(217)  评论(0编辑  收藏  举报