迷人的學霸操作!教你Python中合併字典的多種解題方法

Python 3。9現在處於初始開發階段,但其中讓人驚喜的新功能可不少。其中一個是顛覆性的,它能使處理Python字典時編寫的程式碼更具可讀性也更精簡。

第一個穩定版本應該在2020年10月問世。在與它正式見面前,有一些問題必須搞清楚。

迷人的學霸操作!教你Python中合併字典的多種解題方法

Python字典

字典是Python中特有的資料結構。它包含多個元素,每個元素都是一個鍵值對。例如,初始化包含兩個元素的字典d1。鍵“name”的值為“Tom”,而鍵“age”的值為20。

該字典儲存了20歲的Tom的資訊。

假設出於某些原因我們收集了湯姆的更多資訊,例如他的GPA和婚姻狀況。現在可以建立另一個名為d2的字典。

現在想將這兩個字典合併在一起,因為它們包含著同一個人(Tom)的不同資訊。

那麼問題來了,如何在Python中合併兩個字典?

1。 笨方法

可以使用語句dict_name[key] = value中的賦值運算子“=”在現有字典中插入新元素。

因此,在不使用任何特定的字典方法的情況下,想到的第一個方法是編寫一個for迴圈,使用iterable 。items()在每個鍵值對上進行迭代,然後將該對插入新的字典dnew中。

但是,合併字典應該是非常簡單明瞭的,並且應該用一行程式碼就可以實現。

2。 預設方法

實際上,有一個內建方法可以將字典d1與另一個字典d2“更新”。

一個缺點是。update()方法就地修改字典。需要先複製d1來建立新字典dnew。這種“內建”方法無法方便地合併字典。

可以合併成一行程式碼嗎?可以!

3。 “整潔”的方法

Python從版本3。5+起支援字典解壓**。可以透過解壓兩個字典中的元素來建立新的“合併”字典。

這種解壓方法成為Python3。5+合併字典的實際使用的方法。但是,這種語法在某些人看來可能不美觀,而且對大多數人來說顯然也不直觀。當初次看到的時候,能猜到是什麼意思嗎?

還有另一種簡潔的方法可以用一行程式碼就將字典合併。它看起來也不直觀。

4。 Python 3。9中乾淨的方法

Python 3。9引入了一種新的乾淨的(!)方法,使用聯合運算子“|”合併字典。非常簡潔。

該聯合運算子實際上在Python中並不新鮮。它可以用於“合併”兩個集合。集合是無序且未索引的集合,也用花括號括起來。

拓展賦值

對於兩個列表或兩個值a和b,a += b是a = a + b的縮寫。這種拓展賦值行為也適用於字典聯合運算子。這意味著d1 | = d2等於d1 = d1 | d2。

注意事項

集合是無序的,字典是按順序插入的(Python 3。6),即字典會記住插入元素的順序。這意味著字典並集是不可交換的。d1 | d2和d2 | d1將導致合併的字典元素順序不同。

不滿足於僅僅得出答案,“學霸”追求的是最優解法。這道題目,你學會了嘛?

*宣告:本文於網路整理,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。

覺得不錯,點個“在看”然後轉發出去

TAG: 字典PythonD1合併D2