python字典合併運算子的原理

davidtim發表於2021-09-11

python字典合併運算子的原理

1、新的運算子與dict.update方法的關係與列表連線(+)、擴充套件(+=)運算子與list.extend方法的關係相同。值得注意的是,這與集中|/|=運算子與set.update的關係稍有不同。作明確了允許本地運算子接受更廣泛的型別(如list)是更有用的設計,限制二進位制運算子的運算元型別(如list)有助於避免複雜的隱藏型別轉換引起的錯誤。

>>> l1 = [1, 2]
>>> l1 + (3,) # 限制運算元的型別,不是列表就報錯
Traceback (most recent call last)
...
TypeError: can only concatenate list (not "tuple") to list
>>> l1 += (3,) # 允許就地運算子接受更廣泛的型別(如元組)
>>> l1
[1, 2, 3]

2、合併字典發生鍵衝突時,以最右邊的值為準。這符合現有字典的類似操作。

{'a': 1, 'a': 2} # 2 覆蓋 1
{**d, **e}       # e覆蓋d中相同鍵所對應的值
d.update(e)      # e覆蓋d中相同鍵所對應的值
d[k] = v         # v 覆蓋原有值
{k: v for x in (d, e) for (k, v) in x.items()} # e覆蓋d中相同鍵所對應的值

以上就是python字典合併運算子的原理,希望對大家有所幫助。更多程式設計基礎知識學習:

本文教程操作環境:windows7系統、Python 3.9.1,DELL G3電腦。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3349/viewspace-2829878/,如需轉載,請註明出處,否則將追究法律責任。

相關文章