0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于Python3.9的4个新特性

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-10-31 14:46 次阅读

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

    文章

    315

    浏览量

    21003
  • 词典
    +关注

    关注

    0

    文章

    6

    浏览量

    8120
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84630
  • 运算符
    +关注

    关注

    0

    文章

    172

    浏览量

    11081
收藏 人收藏

    评论

    相关推荐

    Python高级特性:迭代器切片的应用

    在前两篇关于 Python 切片的文章中,我们学习了切片的基础用法、高级用法、使用误区,以及自定义对象如何实现切片用法(相关链接见文末)。本文是切片系列的第三篇,主要内容是迭代器切片。 迭代器
    发表于 11-29 10:11 662次阅读

    请问Python3.9的新功能是什么?

    。如果您实在迫不及待,可以在此处获取最新的Beta版本-3.9.0b3。  上述就是关于Python3.9的新功能是什么的全部内容介绍,想了解更多关于Python的信息,请继续关注我们
    发表于 09-02 18:55

    【HarmonyOS HiSpark AI Camera试用连载 】老骥伏枥志在千里-再谈编译环境的搭建

    : No such file or directory这个不是touch命令不对,而是路径有误,增加一软连接ln -s /bin/touch /usr/bin/touch3、同名冲突在使用python3.9编译
    发表于 11-20 17:48

    关于stcgal在Embedded IDE中的使用问题

    关于stcgal在Embedded IDE中的使用问题安装了python3.9和stcgal1.6,执行烧录时总是提示“串口错误,下载超时”,stcgal无法与单片机握手,请高手指点!
    发表于 02-08 14:49

    关于Python编程入门系列教程》说明及教程汇总

    、绘图命令小结(1)画笔运动命令:(2)获取画笔状态命令(3)画笔控制命令(4)全局控制命令(5)更多命令关于Python编程入门系列教程》说明及教程汇总(出处: DF创客社区 - 分享创造的喜悦)
    发表于 06-23 10:10

    【飞凌RK3588开发板试用】编译源码下载固件

    python3.9的那个报错。终于搞完了。在目录rocdev下面,看到了这些固件包。现在是22.03分,用时差不多1小时那样,还是非常快的。把update.img拷贝到win10准备烧写固件烧写固件在
    发表于 02-26 22:20

    elftosb IMXRT1176珊瑚 OSError: [Errno 8] 执行格式错误怎么解决?

    \',check_call 中的文件“/usr/lib/python3.9/subprocess.py”,第 368 行 retcode = call(*popenargs, **kwargs)文件“/usr
    发表于 04-20 08:03

    OpenVINO工具套件和Python版本 3.9运行install_prerequisites.sh脚本报错

    已安装OpenVINO™工具套件和 Python* 版本 3.9。 运行 install_prerequisites.sh 脚本。 遇到错误: ERROR: Could not find a
    发表于 08-15 06:53

    关于Python的18高效编程技巧

    做不到这样,还扯啥高级呢? 01 交换变量 a=3 b=6 这个情况如果要交换变量在c++中,肯定需要一空变量。但是python不需要,只需一行,大家看清楚了 a,b=b,a print(a)6
    发表于 12-16 15:07 1220次阅读

    有趣的关于Python 3.9版本新特性

    有趣的关于Python 3.9版本新特性
    的头像 发表于 10-08 14:47 3076次阅读
    四<b class='flag-5'>个</b>有趣的<b class='flag-5'>关于</b><b class='flag-5'>Python</b> <b class='flag-5'>3.9</b>版本新<b class='flag-5'>特性</b>

    Python3.9的新特性必知图

    Python3.9,「千呼万唤始出来」。 先来速看下此次发布版本的重点。 新语法特性: PEP 584,为 dict 增加合并运算符。 PEP 585,标准多项集中的类型标注泛型。 PEP 614
    的头像 发表于 11-05 15:33 2036次阅读

    Python3.9的第一维护版本候选版本发布

    近期,Python 3.9的第一维护版本候选版本发布。 IT之家获悉,Python 3.9.1rc1 是 Python 编程语言最新的主要
    的头像 发表于 12-08 09:22 1682次阅读

    手动删除python导致的问题如何解决?

    install pyserial 此时在python下import serial会提示找不到包,检查发现默认运行的是python 3.8.5,但是pyserial被安装在python3.9下面。由于所有的脚本都是跑在3.8.5
    的头像 发表于 07-28 09:37 6237次阅读

    关于python中非常实用的一图像处理库 1

    Python3,简单优雅而功能强大,是图像相关机器学习任务中算法工程师的亲密合作伙伴。 下面我们将介绍pillow的16图片处理功能:
    的头像 发表于 02-08 17:18 1336次阅读

    Python3.10.0的特性介绍

    Python3.10.0有几个特性,还真是值得和大家讲讲。 1. 更友好的错误提示 Python 3.10以前,它是这样提示的,你可能完全不知道哪里有问题,当代码过多。 print ( "Hello
    的头像 发表于 10-31 10:43 503次阅读
    <b class='flag-5'>Python</b>3.10.0的<b class='flag-5'>特性</b>介绍