Python 3.9 有什么新功能?
新版本的Python即将到来!很快,我们将在Python项目中使用它。截至 20/07/2020, Python 3.9 处于 beta 版本(3.9.0b4),很快就会发布Python 3.9 的完整版本。
介绍就够了。让我们开始了解新功能。
1. 字典合并和更新运算符: Python 3.9 在dict类中引入了merge(|)和update(|=)运算符。如果您有两个字典 a 和 b,您现在可以使用这些运算符来合并和更新它们。
a = {1: "Sam", 2: "Alex"}
b = {3: "Daniel", 4: "Tom", 5: "Jimmy"}
您可以使用|合并这两个字典。
c = a|b
print(c)
输出 :
{1: "Sam", 2: "Alex", 3: "Daniel", 4: "Tom", 5: "Jimmy"}
如果两个字典都有一个共同的键,那么输出将显示第二个键值对。
a = {1: "Sam", 2: "Alex", 3: "James"}
b = {3: "Daniel", 4: "Tom", 5: "Jimmy"}
c = a|b
print(c)
输出 :
{1: "Sam", 2: "Alex", 3: "Daniel", 4: "Tom", 5: "Jimmy"}
要更新字典,您可以使用以下运算符:
a = {1: "Sam", 2: "Alex"}
b = {2: "Daniel"}
a |= b
print(a)
输出 :
{1: "Sam", 2: "Daniel"}
2. removeprefix()
和removesuffix()
字符串方法:在Python 的str 类中,新的更新引入了新的removeprefix()
和removesuffix()
方法。
您可以使用removeprefix()
方法从任何字符串中删除前缀:
print('HelloWorld'.removeprefix('Hello'))
输出 :
'World'
如果字符串不以输入前缀开头,则将返回原始字符串的副本。
print('BaseTestCase'.removeprefix('Test'))
输出 :
'BaseTestCase'
如果字符串以输入后缀结尾,则输出将类似于字符串[:-len(suffix)]
。
print('MiscTests'.removesuffix('Tests'))
输出 :
'Misc'
如果输入后缀为空或字符串不以它结尾,则输出将是原始字符串的副本。
print('BadTestCase'.removesuffix('Tmp'))
输出 :
'BadTestCase'
3. 新的解析器: Python 3.9 使用了一个新的解析器,它是一个基于 PEG 的解析器。以前, Python使用LL(1) 。在使用语言构建新功能时,PEG 比 LL(1) 更灵活。官方文档说这种灵活性将在Python 3.10 及更高版本中看到。
4. 类型提示: Python动态地为变量指定数据类型。对于数据类型的静态分配,使用类型提示。这是在Python 3.5 中引入的。您现在可以使用内置集合类型( list和dict )作为泛型类型。之前,您必须从输入中导入大写类型( List或Dict )。
def greet_all(names: list[str]) -> None:
for name in names:
print("Hello", name)
现在不需要从typing.List
调用 List 。
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。