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文章
320浏览量
21181 -
词典
+关注
关注
0文章
6浏览量
8146 -
python
+关注
关注
56文章
4811浏览量
85102 -
运算符
+关注
关注
0文章
172浏览量
11131
发布评论请先 登录
相关推荐
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的特性介绍
![<b class='flag-5'>Python</b>3.10.0的<b class='flag-5'>特性</b>介绍](https://file1.elecfans.com/web2/M00/AD/36/wKgZomVAaZaAX8BVAAAFwopovXo728.jpg)
评论