すごく無理矢理にリスト内包表記っぽくasyncioで非同期化した例が以下。
python
1from asyncio import gather
2from asyncio import get_event_loop
3from asyncio import sleep
4from math import pow
5from random import random
6
7
8async def slow_pow(x, y):
9 await sleep(random())
10 print('%s ** %s' % (x, y))
11 return pow(x, y)
12
13
14async def plistcomp(iterator):
15 return await gather(*iterator)
16
17
18async def main():
19 pows = await plistcomp(slow_pow(i, 2) for i in range(10))
20 print(*pows)
21
22
23if __name__ == '__main__':
24 get_event_loop().run_until_complete(main())
リスト内包表記での並列化はつまるところマップ・アンド・レデュースなので、マップを使用する並列化しかPythonにはありません。(Haskellにはあるみたいですが)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。