1. 程式人生 > >python 字典合並,字典取值,列表轉字典

python 字典合並,字典取值,列表轉字典

就是 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 字典合並,字典取值,列表轉字典