Pythonのrange
関数は、一定の範囲の整数を生成するためによく使われます。しかし、複数の範囲を一度に扱いたい場合はどうすればよいでしょうか?例えば、2~4と6~8のような範囲を指定したい場合です。
itertools.chainを使う方法
Pythonの標準ライブラリであるitertools
のchain
関数を使うと、複数の範囲を一度に扱うことができます。
import itertools
chain = itertools.chain(range(2, 5), range(6, 9))
for i in chain:
print(i)
このコードは、2から4までと6から8までの2つの範囲を生成し、それらを連結します。その結果、2, 3, 4, 6, 7, 8という6つの数値が順に出力されます。
リストを展開する方法
Pythonのリスト展開(unpacking)を使うと、複数の範囲を一度に扱うこともできます。
for r in [*range(2, 5), *range(6, 9)]:
print(r)
このコードは、range(2, 5)
とrange(6, 9)
の2つの範囲を生成し、それらを一つのリストに展開します。その結果、2, 3, 4, 6, 7, 8という6つの数値が順に出力されます。
これらの方法を使えば、Pythonのrange
関数を使って複数の範囲を簡単に扱うことができます。あなたのコードに最適な方法を選んでみてください。.