Python居然藏着这些高级功能!作为程序员的你get了几个

魅力海南 阅读(1374)

beed5a72-6dcb-4bf0-9ba3-a6ab0e222402

使用多少Python并不重要。我们来看看你使用的语言。但是你获得了Python隐藏的高级功能吗?在本文中,作者列出了Python中的五个稍微更高级的功能以及如何使用它们。来找出来吧!

7fcc8336bec94f72bcae45c56a7b0940

小编精心组织了400集Python教学视频,需要开始使用Python的初学者,或者那些已经学习了一段时间,并且在这个过程中感到困惑的人,可以查看小编编写的信息,也许可以帮到你学习,请在课程结尾处学习!

Python是一种易于使用但功能强大的优美语言。但是你真的使用了Python的所有功能吗?

任何编程语言的高级功能通常都是通过丰富的经验发现的。例如,您正在编写一个复杂的项目并在stackoverflow上查找问题的答案。然后你突然发现了一个非常优雅的解决方案,它使用了你从未知道的Python功能!

这种学习方式非常有趣:发现你偶然发生的事情。

以下是Python的五个高级功能及其用法。

Lambda函数

Lambda函数是一个相对较小的匿名函数。匿名表示它实际上没有函数名。

Python函数通常使用def a_function_name()样式定义,但对于lambda函数,我们根本不对它进行命名。这是因为lambda函数的功能是执行一些简单的表达式或操作,而不必完全定义函数。

lambda函数可以使用任意数量的参数,但只能有一个表达式。

7af7fe02d0b84ac18f8c6437949373ef

看它有多简单!我们执行了一些简单的数学运算,而无需定义整个函数。这是Python的众多功能之一,使其成为一种简洁的编程语言。

地图功能

Map()是一个内置的Python函数,它将函数应用于各种数据结构中的元素,例如列表或字典。对于这种操作,这是一个非常干净和可读的实现。

2b8289eca39f4c76bb2d1c65e082bdbf

过滤功能

过滤器内置函数与map函数非常相似,map函数也将函数应用于序列结构(列表,元组,字典)。两者之间的关键区别是filter()只返回应用程序函数返回True的元素。

有关详细信息,请参阅以下示例:

7590873667b840b0b530dc697ddedb2f

我们不仅为每个列表元素评估True或False,而且filter()函数还确保仅返回与True匹配的元素。处理检查表达式和构建返回列表这两个步骤非常容易。

Itertools模块

Python的Itertools模块是一组处理迭代器的工具。迭代器是一种可用于for循环语句的数据,包括列表,元组和字典。

使用Itertools模块中的函数可以执行许多迭代器操作,这通常需要多行函数和复杂的列表理解。有关Itertools的魔力,请参阅以下示例:

72da7f32c15d435ea367bfd9ea5382f4

2d058b8a66b7494db0681c5c87a0fcea

发电机功能

Generator函数是一个类似迭代器的函数,即它也可以用于for循环语句。与简单的for循环相比,这极大地简化了代码并节省了大量内存。

例如,我们要添加从1到1000的所有数字。以下代码块的第一部分向您展示如何使用for循环来执行此计算。

如果列表很小,例如1000行,则计算所需的内存很好。但如果列表很大,例如十亿浮点数,这将导致问题。使用这个for循环,大量的列表将出现在内存中,但不是每个人都有无限的RAM来存储这么多东西。 Python中的range()函数也是如此,它在内存中构建列表。

代码的第二部分显示了使用Python生成器函数来汇总数字列表。生成器函数创建元素并仅在必要时将它们存储在内存中,一次一个。这意味着如果要创建十亿个浮点数,可以将它们一次存储在内存中! Python 2.x中的xrange()函数使用生成器来构建列表。

上面的示例显示,如果要生成大范围的列表,则需要使用生成器函数。如果您的内存有限,这一点尤其重要,例如使用移动设备或边缘计算。

也就是说,如果你想多次迭代列表并且它足够小以适应内存,那么最好在Python 2.x中使用for循环或范围函数。因为每次访问它们时,生成器函数和xrange函数都会生成新的列表值,所以Python 2.x范围函数是一个静态列表,并且整数已经在内存中以便快速访问。

aeebf693d35f43df937bac668ae06f05

以下是小编精心编辑的400集Python视频自学教程,希望对您有所帮助!

4d64434b83a7495f91acf4efc8c30692