Отлично работает следующее:
async def foo(n):
await asyncio.sleep(0)
return n
async def bar():
return {
n: await foo(n) for n in [1, 2, 3]
}
Но вложенная версия не работает с SyntaxError: asynchronous comprehension outside of an asynchronous function
:
async def bar():
return {
i: {
n: await foo(n) for n in [1, 2, 3]
} for i in [1,2,3]
}