icon
icon

Pythonのitertoolsモジュールについて現役エンジニアが解説【初心者向け】

初心者向けにPythonのitertoolsモジュールについて解説しています。イテレータを使うとリストなどのコレクションの各要素に対してひとつひとつ処理を行うことができます。itertoolモジュールの導入方法、使用例を見ていきましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Pythonのitertoolsモジュールについて、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
 

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

itertoolsモジュールについて詳しく説明していくね!

大石ゆかり

お願いします!

目次

1時間でできる無料体験!

 

イテレータとは

イテレータとは、データの流れを表すオブジェクトのことをいいます。リストやタプル、辞書などから流れの中のデータを一つ一つ取り出していきながら処理を行うことをいいます。

 

[PR] Pythonで挫折しない学習方法を動画で公開中

itertoolsモジュールについて

itertoolモジュールはイテレータを構築する部品を実装したPythonのモジュールになります。

プログラミング言語のAPL, Haskell, SMLからアイデアを得てPythonに適した形にしたモジュールです。

このモジュールの特徴としては、高速でメモリ効率が優れていること、単独であっても組み合わせても使えることがあげられます。インストールしなくても標準で利用可能なモジュールです。

 

itertoolsモジュールの使い方

itertoolsモジュールを使う時にはまずimportする必要があります。以下のように記述します。

import itertools

itertoolsモジュールの中にはイテレータを構成する関数が複数あります。組み合わせて使う関数があれば単独で使える関数もあります。

次の実際に使ってみようの項目でitertoolsモジュールの代表的な関数を使って処理内容を見ていこうと思います。

 

コラム

実は私も!?独学で損する人の特徴

「スクールは高いから独学で成功する」という気持ちの方は多いと思います。
もちろんその方が金額は低く抑えられるでしょう。
ただ 独学には向き不向きがあり、実はスクールが向いている人も大勢います。

そんな方のために参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困って挫折しそうなときに、質問や相談できる相手がいる環境で学んでいきたいなと思った
  • ・わかった気になっているだけだったので、自分を追い込む環境に置いた方がいいと感じた
  • ・スクールのカリキュラムで市場に求められるスキルを学ぶべきと思った

少しでも当てはまる部分があれば、 スクールが向いているかもしれません。
お試しのつもりで、まずは一度 無料相談 に参加してみませんか?

現役エンジニア・デザイナーに何でも気軽に相談できる30分すべて無料で できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

実際に使ってみよう

ではitertoolsモジュールを実際に使ってみましょう。

ソースコード

import itertools

print("=== count() ===")
for i in itertools.count():
  print(i)
  if i == 4:
    break

print("=== chain() ===")
for i in itertools.chain([1, 3, 5],[2, 4, 6]):
  print(i)

print("=== cycle() ===")
count = 0
for i in itertools.cycle([5,4,3,2,1]):
  if count >= 7:
    break
  print(i)
  count += 1

print("=== accumulate() ===")
for i in itertools.accumulate([1, 10, 100, 1000, 10000]):
  print(i)

 

実行結果

=== count() ===
0
1
2
3
4
=== chain() ===
1
3
5
2
4
6
=== cycle() ===
5
4
3
2
1
5
4
=== accumulate() ===
1
11
111
1111
11111

 

count関数は無限イテレータといい、0から順番に数字を取得していきます。

chain関数は第1引数のリストと第2引数のリストを連結させて一つのリストを作ります。

cycle関数は引数で設定した値を無限に繰り返します。

accumulate関数は内積和を取得できまず。

 

まとめ

この記事ではPythonのitertoolsモジュールについて解説しました。

 

1時間でできる無料体験!

監修してくれたメンター

メンターSさん

システムエンジニアとしてこれまで行政システムや医療用システムの保守、開発に携わりました。

JavaやPython、PHP、Kotlinなど様々な言語での開発経験があります。

TechAcademyではJavaコース、Pythonコース、AIコースなど7コースを担当しています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう 厳しい試験を通過した講師 があなたの相談に真摯に向き合います。

「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」

こんな気持ちでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する