Python 异步之推导式示例详解

 更新时间:2023年03月22日 10:04:43   作者:冷冻工厂  
这篇文章主要为大家介绍了Python 异步之推导式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

当我们想到“pythonic”时,理解,如列表和字典理解是 Python 的一个特性。

这是我们执行循环的一种方式,与许多其他语言不同。

Asyncio 允许我们使用异步推导式。

我们可以通过“async for”表达式使用异步推导式来遍历异步生成器和异步迭代器。

1. 什么是异步推导式

异步推导式是经典推导式的异步版本。Asyncio 支持两种类型的异步推导式,它们是“async for”推导式和“await”推导式。

在我们看每之前,让我们首先回顾一下经典的推导式。

2. 推导式

推导式允许以简洁的方式创建列表、字典和集合等数据集合。列表推导式允许从新列表表达式中的 for 表达式创建列表。

...
# create a list using a list comprehension
result = [a*2 for a in range(100)]

还支持推导式来创建字典和集合。

...
# create a dict using a comprehension
result = {a:i for a,i in zip(['a','b','c'],range(3))}
# create a set using a comprehension
result = {a for a in [1, 2, 3, 2, 3, 1, 5, 4]}

3. 异步推导式

异步推导式允许使用带有异步可迭代对象的“async for”表达式来创建列表、集合或字典。

...
# async list comprehension with an async iterator
result = [a async for a in aiterable]

这将根据需要创建和安排协程或任务,并将其结果放入列表中。

回想一下,“async for”表达式只能在协程和任务中使用。

另外,回想一下异步迭代器是一个产生可等待对象的迭代器。

“async for”表达式允许调用者遍历等待对象的异步迭代器并从每个对象中检索结果。

在内部,async for 循环将根据需要自动解析或等待每个可等待的调度协程。

异步生成器自动实现异步迭代器的方法,也可用于异步推导式。

...
# async list comprehension with an async generator
result = [a async for a in agenerator]

4. Await 推导式

“等待”表达式也可以在列表、集合或字典理解中使用,称为等待推导式。

与异步推导式一样,它只能在异步协程或任务中使用。

这允许通过挂起和等待一系列可等待对象来创建数据结构,如列表。

...
# await list compression with a collection of awaitables
results = [await a for a in awaitables]

这将通过依次等待每个可等待对象来创建结果列表。

当前协程将被挂起以顺序执行可等待对象,这与使用 asyncio.gather() 并发执行它们不同,而且可能更慢。

以上就是Python 异步之推导式示例详解的详细内容,更多关于Python 异步推导式的资料请关注脚本之家其它相关文章!

相关文章

  • Python可视化mhd格式和raw格式的医学图像并保存的方法

    Python可视化mhd格式和raw格式的医学图像并保存的方法

    今天小编就为大家分享一篇Python可视化mhd格式和raw格式的医学图像并保存的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python抓取百度首页的方法

    python抓取百度首页的方法

    这篇文章主要介绍了python抓取百度首页的方法,涉及Python使用urllib模块实现页面抓取的相关技巧,需要的朋友可以参考下
    2015-05-05
  • python实现人工蜂群算法

    python实现人工蜂群算法

    这篇文章主要介绍了python如何实现人工蜂群算法,帮助大家更好的利用python进行数据分析,感兴趣的朋友可以了解下
    2020-09-09
  • Python接收Gmail新邮件并发送到gtalk的方法

    Python接收Gmail新邮件并发送到gtalk的方法

    这篇文章主要介绍了Python接收Gmail新邮件并发送到gtalk的方法,实例分析了Python操作邮件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • Python编程入门的一些基本知识

    Python编程入门的一些基本知识

    这篇文章主要介绍了Python编程入门的一些基本知识,包括注释需和Shell命令使用等基本内容,要的朋友可以参考下
    2015-05-05
  • python爬虫之BeautifulSoup 使用select方法详解

    python爬虫之BeautifulSoup 使用select方法详解

    本篇文章主要介绍了python爬虫之BeautifulSoup 使用select方法详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Python 使用pandas实现查询和统计示例详解

    Python 使用pandas实现查询和统计示例详解

    这篇文章主要为大家介绍了Python 使用pandas实现查询和统计示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Python面向对象特殊属性及方法解析

    Python面向对象特殊属性及方法解析

    这篇文章主要介绍了Python面向对象特殊属性及方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 一篇文章带你学习python的函数与类

    一篇文章带你学习python的函数与类

    这篇文章主要为大家介绍了python的函数与类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • 50行Python代码实现人脸检测功能

    50行Python代码实现人脸检测功能

    现在的人脸识别技术已经得到了非常广泛的应用,支付领域、身份验证、美颜相机里都有它的应用。下面小编给大家带来了基于50行Python代码实现人脸检测功能,一起看看吧
    2018-01-01

最新评论