首页 > 编程语言 > 详细

python 字典合并,字典取值,列表转字典

时间:2018-04-27 10:45:27      阅读:200      评论:0      收藏:0      [点我收藏+]

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}

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)

 

python 字典合并,字典取值,列表转字典

原文:https://www.cnblogs.com/Frange/p/8960945.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!