python的高级特性_Python的高级特性以及如何使用,你有get到吗?

Python是数据科学领域最受欢迎的语言之一。它是一种很容易上手的语言,并且有大量的库支持。编写和理解Python更容易。它是一种面向对象的语言,也可以用来编写函数代码。从预测模型到UI,几乎所有类型的应用程序都可以使用Python实现。这是Python被用于几乎所有生产级项目的主要原因。

在数据科学中使用的一些最强大和最常见的库是NumPy和Pandas。这些库利用了python的现有功能,使其成为数据分析的明显选择。

下面是Python编程语言的一些最高级的特性!

Lambda函数

Lambda函数是本质上匿名的函数。它没有函数名称。

与Python中的常规函数定义不同,这些函数使用关键字“lambda”定义。这些函数的全部目的不是专门为函数创建内存,而是匿名使用它来执行带有几个参数的简单操作。这些函数可以有任意数量的参数,但只能有一个表达式,因为lambda函数的概念在语法上仅限于一个表达式。

lambda函数的一个简单示例如下:

i = lambdaa, b : a * b

print(i( 7, 8)) # prints '56'

i = lambdaa : a* 5+ 5

print(i( 5)) # prints '30'

看上面的例子,多么简单!我们执行了一些简单的数学运算,而无需定义整个函数。这是 Python 的众多特征之一,这些特征使它成为一种干净、简单的编程语言。

迭代器Itertools

python中的Itertools模块是一组用于处理迭代器的工具。迭代器是在循环时使用的数据类型,以便有效地访问和操作数据结构。Itertools还可以帮助编写高效、美观的代码。

注意:

为了访问这个模块中可用的方法,必须导入Itertools。

例子:

# Linux迷 www.linuxmi.com

importitertools

importoperator

x = [ 1, 2, 3, 4, 5]

sol = itertools.accumulate(x,operator.mul)

fori insol:

print(i)

输出如下:

9a45d5fb51090151407f47486a38b449.png

Itertools有大量使用方法。一些值得注意的是:

count(start,[step]):

计数过程从起始值开始,以指定步长递增(默认为1)。

cycle(p):

cycle就是一while True,无限循环里面的数字。迭代分析字符串的元素,并提供包含字符串中各个元素的结果。

repeat(elem,[n]):

重复迭代elem,n次

Maps

Map用于对列表或字典等数据结构中的元素序列执行相同的函数。Maps可以用来避免循环,从而对每个元素进行相同的更改,使其更具可读性。

Python中的map函数应用于每一个可迭代的项,返回的是一个结果迭代器。如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理。map函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为map对象返回。

以下是 map 方法的语法:

map(function, iterable, ...)

defsquare(x):# 计算平方数

returnx ** 2

linuxmi=list(map(square, [ 1, 2, 3, 4, 5])) # 计算列表各个元素的平方

print(linuxmi)

5a5997b1456c3847e49d40bb8574900e.png

map 函数会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

组包/解包 (Packing / Unpacking)

在将变量分配给列表或元组的过程中,使用*运算符来转换将元素分配给变量的方式。它是Python提供的最方便的技术之一。诸如此类的技术证明了Python在数据科学和机器学习中是首选的原因。

代码:

# Linux迷 www.linuxmi.com

a, *b, c = [ 1, 2, 3, 4, 5, 6, 7]

print(a)

print(b)

print(c)

输出如下:

生成器(Generators)

生成器(generator)是用于创建元素序列的对象。它更像是一个迭代器,因此与for语句并驾齐驱。使用使用yield关键字生成值的函数创建生成器。

列表推导式(list comprehension)与生成器(generator)之间的区别在于,前者生成整个列表,而生成器表达式一次生成一个元素。由于这个原因,生成器表达式比等效的列表理解具有更高的内存效率。还使用了生成器,因为生成器只需较少的代码行。

示例代码:

# Linux迷 www.linuxmi.com

generator = (x* 3forx inrange( 8))

print(type(generator)) # 生成器的type

print(generator) # 直接打印生成器

whileTrue:

try:

print(generator.__next__)

except:

print( "Linux迷您的生成器生成数字OK")

break

输出如下:

注意:

生成器也可以直接与循环语句一起使用。

过滤器(filter)

顾名思义,filter 用于根据特定条件过滤元素序列。通常,在检查条件时,结果为布尔数据类型。filter将这一概念向前推进,并返回与布尔值True相匹配的值。

filter听起来可能类似于Map函数。两者之间的区别在于,前者仅在应用函数返回True时才返回。另一方面,后者操纵数据结构的所有元素。

filter函数接收一个函数 f 和一个可迭代对象,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的filter对象(一个迭代器)。

该技术可以通过表达式进行验证并构造返回列表。

例子:

# Linux迷 www.linuxmi.com

defis_odd(n):

returnn % 2== 1

newlist = filter(is_odd, [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print(f 'odd:{newlist}')

print(f 'odd:{list(newlist)}')

输出:

72e80db1831a72ae8509ec71a8697b07.png

异步Asyncio

Asyncio是python中的一个库,用于使用async/await编写并发代码。当使用网络,Web服务器和数据库时,这些功能至关重要。它用于控制子流程在每个流程中执行。异步代码的主要目标是编写同步并发代码。

为了使用此模块,必须像itertools一样首先将其导入。

# Linux迷 www.linuxmi.com

importasyncio

async defmain:

print( 'Hello World!')

await asyncio.sleep( 1)

print( 'Linux迷 www.linuxmi.com')

asyncio.run(main)

输出:

Async/Await代码用于处理子进程期间的竞争条件,并以特定的方式同步代码行。控制这些子流程工作方式的能力是由asyncio提供的。在上面的示例中,出现第一个print语句,然后有一个睡眠周期,接着是下一个print语句。因此,不可能在第一个print语句之前打印第二个print语句。

总结

Python已经成为现代通用编程语言。它拥有一个充满活力的社区,并且不断更新语言本身,提高了Python的开发体验。对该语言的库支持使该语言成为一种非常通用的语言。Python提供了很多更高级的技术,这些技术可能会让每个开发人员都感到欣慰。

来自:Linux迷https://www.linuxmi.com/python-gaoji-shiyong.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值