mq3.8.9版本有什么不同_Python3.9版本新特性:字典合并操作的详细解读
Python版本
你現在使用哪種版本的Python?3.7分?3.5分?還是2.7?
Python 3.9現在正處于開發的alpha階段,官方文檔中已經提出了許多新特性!該版本已經在5月進入beta測試階段,穩定版應該在10月發布。其中的一個新功能涉及了字典,讓我們看看新的字典將會給我們帶來哪些新體驗。
Python字典
字典是Python中非常獨特的數據結構。它包含多個元素,每個元素都是一個鍵值對。例如,讓我們用兩個元素初始化字典d1。鍵“name”的值為“Tom”,而鍵“age”的值為20。
d1 = {'name': 'Tom', 'age': 20}在這里,我們用字典d1儲存了年齡20歲,姓名叫Tom的資料。
假設出于某些原因,你收集了有關Tom的更多信息,例如他的平均成績(GPA)和他的婚姻狀況。 這里,我們可以把以上資料命名為d2的字典。
d2 = {'gpa': 4.0, 'is_single': True}你想把這兩本詞典合并在一起,因為它們都包含關于同一個人Tom的不同信息。
問題是:如何在Python中合并兩個字典?
在過去的版本中,我們一般會通過以下三種方法來合并字典。
1.最笨拙的方法
你可以使用語法 dict_name [key] = value 的賦值運算符=在現有字典中插入新元素。
d1 = {'name': 'Tom', 'age': 20} d1['sex'] = 'Male' # d1 == {'name': 'Tom', 'age': 20, 'sex': 'Male'}因此,在不使用任何特定于字典的方法的情況下,首先想到的方法是編寫一個for循環,該循環使用iterable.items()遍歷每個鍵值對,然后將該對插入到新的dictionary dnew中。
d1 = {'name': 'Tom', 'age': 20} d2 = {'gpa': 4.0, 'is_single': True} dnew = dict() for key, value in d1.items():dnew[key] = value for key, value in d2.items():dnew[key] = value # dnew == {'name': 'Tom', 'age': 20, 'gpa': 4.0, 'is_single': True}盡管如此,合并字典應該是非常簡單和直接的事情,應該在一行代碼中完成。
我們應該能做得更好。
2.默認的做法
實際上,有一個內置方法可以將字典d1與另一個字典d2“更新”。
dnew = d1.copy() dnew.update(d2)上述代碼存在一個缺點,那就是.update()會就地修改字典。你需要先復制d1來創建一個新的字典dnew。這種“內置”方法破壞了使用方便的內置方法合并詞典的目的。
我們能在一行代碼中合并嗎?可以!
3.看起來很“整潔”的方法
Python支持版本3.5+起的字典解壓**。 你可以通過解壓縮兩個字典中的元素來創建新的“合并”字典。
dnew = {**d1, **d2}這種解包方法成為合并python3.5+中字典的實際方法。然而,這種語法在你們中的一些人看來可能很難看,而且對我們大多數人來說肯定不是直觀的。在第一次看到這行代碼時,你能猜出它是什么意思嗎?
此外,還有另一種看起來也不直觀的簡單方法可以在一行中實現字典合并。
dnew = dict(d1, **d2)Python3.9版本中干凈利落的合并方式
Python3.9引入了一個新的clean(!)方法,使用聯合運算符 | 合并詞典,代碼相當整潔。
dnew = d1 | d2 # dnew == {'name': 'Tom', 'age': 20, 'gpa': 4.0, 'is_single': True}這種聯合運算符實際上在Python中不是新的, 它可以用于“合并”兩個集合, 集合是無序且沒有索引的集合,要用花括號括起來。
a = {1, 2, 3} b = {3, 4, 5} print( a | b ) # {1, 2, 3, 4, 5}擴展
對于兩個列表或兩個值 a 和 b,a += b 是 a = a + b 的縮寫。
這種增強的賦值行為也適用于字典聯合運算符。 這意味著 d1 | = d2 等于 d1 = d1 | d2。
注意事項
集合是無序的,字典是按順序插入的(來自Python 3.6)。換句話說,字典會記住插入項目的順序。
這意味著字典并集不是可交換的,d1 | d2 和 d2 | d1 將導致合并的詞典具有不同的項目順序。
參考鏈接:https://docs.python.org/3.9/whatsnew/3.9.html
--END--
喜歡本文的同學,記得轉發+點贊哈~
也可以關注我們的公眾號:為AI吶喊(weainahan)
總結
以上是生活随笔為你收集整理的mq3.8.9版本有什么不同_Python3.9版本新特性:字典合并操作的详细解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想g470bios怎么设置光盘启动 联
- 下一篇: python如何爬虫股票数据_简单爬虫: