python 字典合並,字典取值,列表轉字典
阿新 • • 發佈:2018-04-27
就是 nbsp 2.7 fault font ... 3.5 bsp 轉化
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 字典合並,字典取值,列表轉字典