ドキュメントは、これが主な用途であることを明示的に示唆していますitertools.repeat
:
オブジェクトを何度も返すイテレータを作成します。times 引数が指定されない限り、無期限に実行されます。map()
呼び出された関数への不変パラメータの引数として使用されます。またzip()
、タプル レコードの不変部分を作成するためにも使用されます。
len([1,2,3])
また、times
引数としてpass を使用する理由はありません。map
最初の iterable が消費されるとすぐに停止するため、無限の iterable はまったく問題ありません。
>>> from operator import add
>>> from itertools import repeat
>>> list(map(add, [1,2,3], repeat(4)))
[5, 6, 7]
repeat
実際、これはドキュメントの例と同等です:
>>> list(map(pow, range(10), repeat(2)))
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
これにより、Python イテレータの用語でも完全に読みやすい、遅延関数型言語の優れたソリューションが実現します。