当前位置: 首页 > 科技观察

关于Python3.9,你必须知道的4个新特性

时间:2023-03-13 03:10:01 科技观察

1.Dictionaryunionoperator这是我最喜欢的功能之一,语法非常漂亮。在Python3.9中,如果你有两个字典,你现在可以使用这些运算符来合并和更新它们。合并运算符“|”:还有更新运算符|=,更新原字典:a={1:'a',2:'b',3:'c'}b={4:'d',5:'e'}a|=bprint(a){1:'a',2:'b',3:'c',4:'d',5:'e'}如果我们的字典共享Akey,则使用第二个字典中的值:a={1:'a',2:'b',3:'c',6:'inboth'}b={4:'d',5:'e',6:'butdifferent'}print(a|b){1:'a',2:'b',3:'c',6:'butdifferent',4:'d',5:'e'}使用Iterables更新字典|=运算符的另一个很酷的特性是能够使用iterables(例如列表或生成器)用新的键值对更新字典:a={'a':'one','b':'two'}b=((i,i**2)foriinrange(3))a|=bprint(a){'a':'one','b':'two',0:0,1:1,2:4}当然,如果你使用|你会得到一个类型错误,因为它只能用于字典类型之间的联合。2.字符串方法removeprefix()和removesuffix()str.removeprefix(substring:string)是一个接收子字符串参数的方法。顾名思义,它会删除字符串对应的子字符串前缀。如果没有对应的前缀,则返回原字符串。str.removesuffix(substring:string)是一个方法,它接收一个子字符串参数,它将删除字符串对应的子字符串后缀,如果没有对应的后缀,则返回原始字符串。当然,你可以通过使用string[len(prefix):]prefix和string[:-len(suffix)]suffix来实现两个函数执行。这些都是非常简单的操作,因此也是非常简单的函数,考虑到你可能会经常执行这些操作,Python3.9提供的这两个内置函数应该会给你带来很多乐趣。3.新的数学函数优化了Python3.9的数学模块,增加了很多新的函数。比如以前gcd计算最大公因数的函数只能应用于2个数,非常蛋疼。我们必须使用math.gcd(80,math.gcd(64,152))来处理超过2个数的情况。现在gcd允许计算任意数量的数字。importmath#Greatestcommondivisormath.gcd(80,64,152)#8Math模块中,第一个新函数是:#leastcommonmultiplemath.lcm(4,8,5)#40用于计算最小公倍数:math.lcm,和gcd一样,它允许可变数量的参数。4.新的解析器——PEG这个变化你可能看不到,摸不着,但它可能会改变Python的未来。以前,Python使用LL(1)解析器。从Python3.9开始,它将使用PEG解析器。官方认为,这一变化将使他们更容易构建新功能。因此,敬请期待Python3.10,Python团队或许会给我们带来更多惊喜!