扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇内容主要讲解“Python 3.10中的功能有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python 3.10中的功能有哪些”吧!
创新互联专业为企业提供错那网站建设、错那做网站、错那网站设计、错那网站制作等企业网站建设、网页设计与制作、错那企业网站模板建站服务,十多年错那做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
突出显示Python 3.10中的功能
(1) 二进制表示中的频率为1
将引入一个新的方法bit_count(),该方法将返回整数的二进制表示形式中存在的个数。 结果将独立于整数的符号。 此功能的一个用例是在信息论中,其中对于两个等长的字符串,您可以找到两个字符串不同的位置的总数。 这种差异称为汉明距离(参见Wiki)。 在此处阅读有关Python中此功能的历史记录。
在后台,此方法仅调用strtype asstr.count('1')的count方法。 以下示例对此进行了说明:
# Positive integer >>> num = 108 # Let's first get the binary representation of num >>> bin(num) '0b1101100' >>> num.bit_count() 4 # Negative integer >>> num = -108 >>> bin(num) '-0b1101100' >>> num.bit_count() 4 # Under the hood >>> bin(num).count('1')
(2) 压缩将是"严格的"
新的可选关键字参数strict将添加到zip函数中。 如果passstrict = True,则压缩的可迭代项的长度必须相等,否则将引发ValueError。 在Python 3.9之前,如果要压缩两个不等长的列表,则将得到长度等于较小列表的输出。
如以下示例所示,在Python 3.10之前,zip()函数忽略了第一个列表中不匹配的'D'。 相比之下,Python 3.10将引发ValueError。 鉴于压缩相同数量项目的直观性,我喜欢此功能,因为它唤醒您重新检查您的输入。 在PEP 618上了解有关此问题的更多信息。
在Python 3.10之前:
>>> list(zip(['A', 'B', 'C', 'D'], ['Apple', 'Ball', 'Cat'])) [('A', 'Apple'), ('B', 'Ball'), ('C', 'Cat')]
在Python 3.10中:
>>> list(zip(['A', 'B', 'C', 'D'], ['Apple', 'Ball', 'Cat'], strict=True)) Traceback (most recent call last): ...ValueError: zip() argument 1 is longer than argument 2
(3) 字典的只读视图
字典的三个键方法keys(),values()和items()返回类似于集合的对象,这些对象分别对应于字典的键,值和项目的动态视图。 您在这两个视图中所做的任何更改也将反映在原始词典中。
在Python 3.10中,从以上三种方法返回的所有视图都将具有一个称为mapping的附加属性,该属性将返回该映射的只读代理。 该只读代理将包装视图引用的原始字典。 以下示例对此进行了说明:
让我们定义一个字典并将其键和值存储在单独的变量中:
>>> fruits = {'Mangos': 12, 'Figs': 100, 'Guavas': 3, 'Kiwis': 70} >>> keys = fruits.keys() >>> values = fruits.values() >>> list(keys) ['Mangos', 'Figs', 'Guavas', 'Kiwis']
现在,我们使用thedel语句从此字典中删除两个元素。 如果现在打印键和值,您将看到它仅返回其余项目。 现在,原始词典中的更改将反映在视图中(此处为键和值)。
>>> del fruits['Figs'] >>> del fruits['Guavas'] >>> print (list(keys), list(values)) ['Mangos', 'Kiwis'] [12, 70]
现在,通过映射,您将仍然能够找回原始字典的只读代理。 cool! 是不是
# returns a read-only proxy of the original dictionary >>> values.mapping mappingproxy({'Mangos': 12, 'Figs': 100, 'Guavas': 3, 'Kiwis': 70}) >>> values.mapping['Guavas'] 3
(4) 消除一些向后兼容性
集合模块的抽象基类(ABC)的别名支持将从Python 3.10开始删除。 因此,现在是停止忽略相应的"弃用警告"并改编代码的好时机。
高达Python 3.9.0b4(于2020年7月3日发布)
到现在为止,在DeprecationWarning中将直接从collections模块中导入任何这些ABC。
>>> from collections import ABC_Name DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
到此,相信大家对“Python 3.10中的功能有哪些”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流