Gar*_*rwe 10 python python-3.x python-asyncio
Python3.6 现在异步可迭代。是否有内置方法可以将异步可迭代转换为同步可迭代。
我目前有这个辅助函数,但感觉非常不Pythonic。有一个更好的方法吗?
async def aiter_to_list(aiter):
l = []
async for i in aiter:
l.append(i)
return l
Run Code Online (Sandbox Code Playgroud)
sup*_*odo 18
从Python 3.6开始,您可以使用异步推导式
async def async_iter():
for i in range(0,5):
yield i
# async comprehension
sync_list = [gen async for gen in async_iter()]
print(sync_list) # [0, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
您可以使用aiostream.stream.list:
from aiostream import stream
async def agen():
yield 1
yield 2
yield 3
async def main():
lst = await stream.list(agen())
print(lst) # prints [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
文档中有更多运算符和示例。
归档时间: |
|
查看次数: |
5602 次 |
最近记录: |