日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

mq3.8.9版本有什么不同_Python3.9版本新特性:字典合并操作的详细解读

發(fā)布時(shí)間:2024/10/12 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mq3.8.9版本有什么不同_Python3.9版本新特性:字典合并操作的详细解读 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

處于測(cè)試階段的Python 3.9版本中有一個(gè)新特性:我們?cè)谑褂肞ython字典時(shí),將能夠編寫出更可讀、更緊湊的代碼啦!

Python版本

你現(xiàn)在使用哪種版本的Python?3.7分?3.5分?還是2.7?

Python 3.9現(xiàn)在正處于開發(fā)的alpha階段,官方文檔中已經(jīng)提出了許多新特性!該版本已經(jīng)在5月進(jìn)入beta測(cè)試階段,穩(wěn)定版應(yīng)該在10月發(fā)布。其中的一個(gè)新功能涉及了字典,讓我們看看新的字典將會(huì)給我們帶來哪些新體驗(yàn)。

Python字典

字典是Python中非常獨(dú)特的數(shù)據(jù)結(jié)構(gòu)。它包含多個(gè)元素,每個(gè)元素都是一個(gè)鍵值對(duì)。例如,讓我們用兩個(gè)元素初始化字典d1。鍵“name”的值為“Tom”,而鍵“age”的值為20。

d1 = {'name': 'Tom', 'age': 20}

在這里,我們用字典d1儲(chǔ)存了年齡20歲,姓名叫Tom的資料。

假設(shè)出于某些原因,你收集了有關(guān)Tom的更多信息,例如他的平均成績(jī)(GPA)和他的婚姻狀況。 這里,我們可以把以上資料命名為d2的字典。

d2 = {'gpa': 4.0, 'is_single': True}

你想把這兩本詞典合并在一起,因?yàn)樗鼈兌及P(guān)于同一個(gè)人Tom的不同信息。

問題是:如何在Python中合并兩個(gè)字典?

在過去的版本中,我們一般會(huì)通過以下三種方法來合并字典。

1.最笨拙的方法

你可以使用語法 dict_name [key] = value 的賦值運(yùn)算符=在現(xiàn)有字典中插入新元素。

d1 = {'name': 'Tom', 'age': 20} d1['sex'] = 'Male' # d1 == {'name': 'Tom', 'age': 20, 'sex': 'Male'}

因此,在不使用任何特定于字典的方法的情況下,首先想到的方法是編寫一個(gè)for循環(huán),該循環(huán)使用iterable.items()遍歷每個(gè)鍵值對(duì),然后將該對(duì)插入到新的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}

盡管如此,合并字典應(yīng)該是非常簡(jiǎn)單和直接的事情,應(yīng)該在一行代碼中完成。

我們應(yīng)該能做得更好。

2.默認(rèn)的做法

實(shí)際上,有一個(gè)內(nèi)置方法可以將字典d1與另一個(gè)字典d2“更新”。

dnew = d1.copy() dnew.update(d2)

上述代碼存在一個(gè)缺點(diǎn),那就是.update()會(huì)就地修改字典。你需要先復(fù)制d1來創(chuàng)建一個(gè)新的字典dnew。這種“內(nèi)置”方法破壞了使用方便的內(nèi)置方法合并詞典的目的。

我們能在一行代碼中合并嗎?可以!

3.看起來很“整潔”的方法

Python支持版本3.5+起的字典解壓**。 你可以通過解壓縮兩個(gè)字典中的元素來創(chuàng)建新的“合并”字典。

dnew = {**d1, **d2}

這種解包方法成為合并python3.5+中字典的實(shí)際方法。然而,這種語法在你們中的一些人看來可能很難看,而且對(duì)我們大多數(shù)人來說肯定不是直觀的。在第一次看到這行代碼時(shí),你能猜出它是什么意思嗎?

此外,還有另一種看起來也不直觀的簡(jiǎn)單方法可以在一行中實(shí)現(xiàn)字典合并。

dnew = dict(d1, **d2)

Python3.9版本中干凈利落的合并方式

Python3.9引入了一個(gè)新的clean(!)方法,使用聯(lián)合運(yùn)算符 | 合并詞典,代碼相當(dāng)整潔。

dnew = d1 | d2 # dnew == {'name': 'Tom', 'age': 20, 'gpa': 4.0, 'is_single': True}

這種聯(lián)合運(yùn)算符實(shí)際上在Python中不是新的, 它可以用于“合并”兩個(gè)集合, 集合是無序且沒有索引的集合,要用花括號(hào)括起來。

a = {1, 2, 3} b = {3, 4, 5} print( a | b ) # {1, 2, 3, 4, 5}

擴(kuò)展

對(duì)于兩個(gè)列表或兩個(gè)值 a 和 b,a += b 是 a = a + b 的縮寫。

這種增強(qiáng)的賦值行為也適用于字典聯(lián)合運(yùn)算符。 這意味著 d1 | = d2 等于 d1 = d1 | d2。

注意事項(xiàng)

集合是無序的,字典是按順序插入的(來自Python 3.6)。換句話說,字典會(huì)記住插入項(xiàng)目的順序。

這意味著字典并集不是可交換的,d1 | d2 和 d2 | d1 將導(dǎo)致合并的詞典具有不同的項(xiàng)目順序。

參考鏈接:https://docs.python.org/3.9/whatsnew/3.9.html

--END--

喜歡本文的同學(xué),記得轉(zhuǎn)發(fā)+點(diǎn)贊哈~

也可以關(guān)注我們的公眾號(hào):為AI吶喊(weainahan)

總結(jié)

以上是生活随笔為你收集整理的mq3.8.9版本有什么不同_Python3.9版本新特性:字典合并操作的详细解读的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。