KEIS BLOGは株式会社ケイズ・ソフトウェアが運営しています。

KEIS BLOG

Python -itertools-


Pythonでループ処理を書く場合、for文をネストしなくても「itertools」を使うと
簡潔に処理を書くことができます。

■itertools
https://docs.python.jp/3/library/itertools.html

まず、「itertools」をimportします。

■itertoolsのインポート

import itertools

itertoolsを使わず、for文をネストした場合は下記のようになります。

>>> for x in range(2):
...     for y in range(5):
...             print(x, y)
...
0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4

これをitertoolsを使うと下記のようになります。

>>> for x, y in itertools.product(range(2), range(5)):
...     print(x, y)
...
0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4

2重ループですとあまりメリットがないように思えますが、
3重、4重となると便利さを感じられると思いますし、
高速でメモリ効率に優れているので、普通にfor文を書くより良いと思います。

【関連記事】
3分で構築するRuby on Rails開発環境
続・3分で構築するRuby on Rails開発環境~MySQL設定編~
フラットデザインとレスポンシブデザイン
「Cloudera World Tokyo 2014」に行ってきました
Code Avengers(コードアベンジャーズ)
paizaでスキルチェック ~オンラインハッカソンに挑戦~
そしてスーパープログラマーへ
Hackmeに挑戦!
Railsで作るAPI
Ruby on Rails -turnout-
Ruby on Rails -migration-
Windows 10にアップグレードしてみました
Windows 神モード
Ruby on rails -slim-
WindowsでVimを使う(1)
「Cloudera World Tokyo 2015」に行ってきました
Ruby on Rails -gitignore.io-
Windowsでパッケージ管理
プログラミング言語を武器に例えると
Vagrantで開発環境構築
ワンライナーでWebサーバ起動
Vim like in Chrome
mailcatcher – インストール編
mailcatcher – 設定編
mailcatcher – API編
tigを使ってみました
NodeSchoolに入学
Vim Bootstrapを使ってみる
ギットクエストやってみました
VIM Adventures -LEVEL 1-
VIM Adventures -LEVEL 2-
VIM Adventures -LEVEL 3-
Python -インストール編
Python -パッケージ管理
Python -dateutils-