1.詞典聯合運算符
這是我最喜歡的功能之一,語法非常優美。
在Python3.9,如果你有兩個詞典,現在可以用這些運算符進行合并和更新。
合并運算符 "|":
還有update運算符|=
,它會更新原始字典:
a = {1: 'a', 2: 'b', 3: 'c'}
b = {4: 'd', 5: 'e'}
a |= b
print(a)
{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}
如果我們的詞典共享一個key,那么將使用第二個詞典中的value:
a = {1: 'a', 2: 'b', 3: 'c', 6: 'in both'}
b = {4: 'd', 5: 'e', 6: 'but different'}
print(a | b)
{1: 'a', 2: 'b', 3: 'c', 6: 'but different', 4: 'd', 5: 'e'}
使用可迭代對象進行字典更新
|=
操作符的另一個很酷的特性是能夠使用可迭代對象(例如列表或生成器)使用新的鍵值對更新字典:
a = {'a': 'one', 'b': 'two'}
b = ((i, i**2) for i in range(3))
a |= b
print(a)
{'a': 'one', 'b': 'two', 0: 0, 1: 1, 2: 4}
當然,如果你用|
這樣做,則會得到 TypeError ,因為它只能用于dict類型之間的聯合。
2.字符串方法
removeprefix() 和 removesuffix()
** str.removeprefix(substring: string)
**接收一個 substring 參數,顧名思義,它將刪除字符串對應的 substring 前綴,如果沒有對應的前綴,返回原字符串。
** str.removesuffix(substring: string)
**接收一個 substring 參數,它將刪除字符串的對應 substring 后綴,如果沒有對應的后綴,返回原字符串。
當然,這兩個函數你也可以通過使用 **string[:-len(suffix)]
和string[len(prefix):]
**來實現。
這些是非常簡單的操作,因此也是非常簡單的功能,考慮到你可能經常執行這些操作,Python3.9 提供的這兩個內置函數應該能讓你非常爽。
3.新的數學函數
Python 3.9 的數學模塊進行了不少的優化并添加了許多新功能。
比如以前gcd計算最大公因數的函數只能應用于2個數字,這就很蛋疼,我們必須使用 ** math.gcd(80, math.gcd(64, 152))
**來處理大于2個數字的情況。
現在 gcd 允許計算任意數量的數字。
import math
# Greatest common divisor
math.gcd(80, 64, 152)
# 8
Math模塊中,另一個新增的功能是:
# 最小公倍數
math.lcm(4, 8, 5)
# 40
用于計算最小公倍數:math.lcm,與gcd一樣,它允許可變數量的參數。
4.新的解析器—PEG
這一個更改你可能看不見、摸不著,但它可能改變Python的未來。
以前Python使用 LL(1) 解析器,從Python 3.9 開始,將使用 PEG 解析器,官方認為,這個更改會使得他們更加方便地構建新功能。
-
生成器
+關注
關注
7文章
321瀏覽量
21315 -
詞典
+關注
關注
0文章
6瀏覽量
8156 -
python
+關注
關注
56文章
4813瀏覽量
85304 -
運算符
+關注
關注
0文章
172瀏覽量
11176
發布評論請先 登錄
相關推薦
Python高級特性:迭代器切片的應用
請問Python3.9的新功能是什么?
【HarmonyOS HiSpark AI Camera試用連載 】老驥伏櫪志在千里-再談編譯環境的搭建
關于stcgal在Embedded IDE中的使用問題
關于《Python編程入門系列教程》說明及教程匯總
【飛凌RK3588開發板試用】編譯源碼下載固件
elftosb IMXRT1176珊瑚 OSError: [Errno 8] 執行格式錯誤怎么解決?
OpenVINO工具套件和Python版本 3.9運行install_prerequisites.sh腳本報錯
關于Python的18個高效編程技巧
Python3.9的新特性必知圖
Python3.9的第一個維護版本候選版本發布
手動刪除python導致的問題如何解決?
關于python中非常實用的一個圖像處理庫 1
Python3.10.0的特性介紹

評論