スポンサーリンク

【Python】itertoolsの使い方

記事内に広告が含まれています。

Pythonのitertoolsは、効率的にイテレーション(繰り返し処理)を行うための標準ライブラリです。

特に、ループ処理を短縮し、コードをシンプルにするために活用できます。

ここではitertoolsの基本的な関数と、具体的な使用例を紹介します。

スポンサーリンク

count: 無限にカウントを生成

countは、指定した数から始めて、指定のステップで増加する無限のカウンターを生成します。

デフォルトでは1ずつ増加します。

import itertools

for i in itertools.count(10, 2):
    if i > 20:
        break
    print(i)
# 出力: 10, 12, 14, 16, 18, 20
スポンサーリンク

cycle: イテラブルを無限に繰り返し

cycleは、与えられたシーケンスを無限に繰り返します。

import itertools

count = 0
for item in itertools.cycle(['A', 'B', 'C']):
    if count > 5:
        break
    print(item)
    count += 1
# 出力: A, B, C, A, B, C

repeat: 指定回数だけ同じ値を繰り返し

repeatは、1つの値を指定回数だけ繰り返します。

無限に繰り返すことも可能です。

import itertools

for item in itertools.repeat('Hello', 3):
    print(item)
# 出力: Hello, Hello, Hello

combinations: 組み合わせ

combinationsは、指定された要素数のすべての組み合わせを生成します。

順番は考慮されません。

import itertools

items = ['A', 'B', 'C']
for combination in itertools.combinations(items, 2):
    print(combination)
# 出力: ('A', 'B'), ('A', 'C'), ('B', 'C')

permutations: 順列

permutationsは、要素のすべての順列を生成します。

こちらは順番が異なるものも別の結果として扱います。

import itertools

items = ['A', 'B', 'C']
for permutation in itertools.permutations(items, 2):
    print(permutation)
# 出力: ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')

product: 直積(デカルト積)

productは、与えられたイテラブル同士のすべての組み合わせ(直積)を生成します。

import itertools

for product in itertools.product([1, 2], ['A', 'B']):
    print(product)
# 出力: (1, 'A'), (1, 'B'), (2, 'A'), (2, 'B')

accumulate: 累積計算

accumulateは、累積した和や積を計算します。

import itertools
import operator

numbers = [1, 2, 3, 4]
for result in itertools.accumulate(numbers):
    print(result)
# 出力: 1, 3, 6, 10

また、operator.mulを使うと積も計算できます。

for result in itertools.accumulate(numbers, operator.mul):
    print(result)
# 出力: 1, 2, 6, 24

まとめ

itertoolsを使うことで、複雑なループ処理や組み合わせ、順列を簡単に実装できます。

繰り返し処理が必要な場面や効率を重視したいときには、活用してみてください。

スポンサーリンク
Python
著者SNS
タイトルとURLをコピーしました