美文网首页Python小哥哥大数据 爬虫Python AI Sqlpython
学习python需要知道的5个高级特性!

学习python需要知道的5个高级特性!

作者: 轻松学Python111 | 来源:发表于2019-04-22 16:08 被阅读5次

Python是一种很漂亮的语言。使用简单但表达力强,但你是否充分利用了它所能提供的一切?

任何编程语言的高级功能通常都是通过丰富的经验发现的。您正在编写一个复杂的项目,并发现自己在stackoverflow上搜索某些内容。然后,您会遇到一个非常优雅的问题解决方案,它使用的是您以前不知道的Python特性!

这绝对是最有趣的学习方式:通过探索和意外去发现!

以下是Python编程语言中最有用的5个高级功能,当然更重要的是如何使用它们!

(1)Lambda函数

Lambda函数是一个小的匿名函数,匿名的意思是因为它实际上没有名称。

Python函数通常使用def a_function_name()的样式定义,但是对于lambda函数,我们根本不给它命名。我们这样做是因为lambda函数的目的是执行某种简单的表达式或操作,而无需完全定义函数。

lambda函数可以使用任意数量的参数,但必须始终只有一个表达式:

image.png

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

(2)Map

Map()是一个内置的Python函数,用于将函数应用于像列表或字典这样的元素序列。这是执行此类操作的非常干净且最重要的可读方式。

image.png

看看上面的例子!我们可以将我们的函数应用于单个列表或多个列表。实际上,您可以将map与您能想到的任何python函数一起使用,只要它与你正在操作的序列元素兼容。

(3)过滤

Filter内置函数与Map函数非常相似,它将函数应用于序列(列表、元组、字典)。关键的区别在于filter()只返回应用函数返回的元素为True。

请查看以下示例以获取说明:

image.png

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

(4)Itertools

Python Itertools模块是一组用于处理迭代器的工具。迭代器是一种数据类型,可以在for循环中使用,包括列表、元组和字典。

使用Itertools模块中的函数将允许您执行许多迭代器操作,这些操作通常需要多行函数和复杂的列表理解。查看下面的示例,了解Itertools的神奇之处!

image.png

(5)生成器

生成器函数允许您声明一个行为类似于迭代器的函数,即它可以在for循环中使用。这大大简化了代码,并且比简单的for循环具有更高的内存效率。

考虑一个例子,我们想要将所有数字从1加到1000。下面代码的第一部分说明了如何使用for循环执行此操作。

现在,如果列表很小,比如长度为1000,那就好了。如果你想用一个庞大的列表,比如10亿浮点数,就会出现问题。使用for循环,在内存中创建大量memory chewing列表 - 并非每个人都有无限的内存来存储这样的东西! Python中的range()函数做同样的事情,它在内存中构建列表

代码的第(2)节说明了使用Python生成器对数字列表求和。生成器将创建元素并仅在需要时将它们存储在内存中,即一次一个。这意味着,如果你必须创建10亿个浮点数,那么只能一次将它们存储在内存中! Python中的xrange()函数使用生成器来构建列表。

这个故事的大致寓意如下:如果你有一个大范围生成列表,请使用生成器或xrange函数。如果您有一个真正对内存敏感的系统,如移动或边缘计算,这一点尤其正确。

话虽这么说,如果你想多次迭代列表并且它足够小以适应内存,那么最好使用for循环和range函数。这是因为generator和xrange将在每次访问时生成列表值,而range是一个静态列表,并且内存中已存在整数以便快速访问。

image.png

相关文章

  • 学习python需要知道的5个高级特性!

    Python是一种很漂亮的语言。使用简单但表达力强,但你是否充分利用了它所能提供的一切? 任何编程语言的高级功能通...

  • Python的高级特性,模块和IO操作

    今天我们学习Python的高级特性、模块和IO操作,通过学习这些,我们可以更快的了解Python,使用Python...

  • Python的高级特性,模块和IO操作

    今天我们学习Python的高级特性、模块和IO操作,通过学习这些,我们可以更快的了解Python,使用Python...

  • Python学习:高级特性

    切片: 这是对list,tuple和字符串的截取的方式: 切片用法:取前n (= 3)个: 取后n (= 3)个:...

  • python高级特性学习

    一、高级特性切片 对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符...

  • Python学习之高级特性

    欢迎大家访问我的博客:博客地址 练习代码 掌握了Python的数据类型、语句和函数,基本上就可以编写出很多有用的程...

  • python学习(二)高级特性

    切片 截取集合,包括list、tuple、set 迭代 for ... in ...: 列表生成式 [函数/表达式...

  • Python学习(三)

    Python的高级特性 python中有很多高级特性,比起C/C++来说要简单许多,运用起来十分方便。 切片 通常...

  • python的柯里化和装饰器、闭包

    python的高级特性-装饰器有点类似java中的切面编程,要理解python的装饰器首先需要具备两个知识:柯里化...

  • Python高级特性

    切片slice取指定索引范围的操作:[0:10:2]-->意为从第一个元素到第11个元素,元素之间隔2 迭代ite...

网友评论

    本文标题:学习python需要知道的5个高级特性!

    本文链接:https://www.haomeiwen.com/subject/fkjjgqtx.html