Python 基本講座

高度な繰り返し処理

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
繰り返し処理に便利なitertoolsモジュールを紹介します。
講師:
07:09

字幕

このレッスンでは 繰り返し処理に便利な 「itertools」というモジュールを 紹介します プログラムの中で 繰り返し処理が行われることは よくあります 例えば すぐに思いつくのは リストを「for」文で回すような このようなコードです 「1」「2」「3」と順番に取り出されて 画面に表示されています 実は 文字列も このような 繰り返し処理の対象にできます 「abc」という文字列を 「for」文で回すと 1文字ずつ取り出されて 画面に表示されているのがわかります このような繰り返し処理を コンピュータの専門用語で イテレーションと呼ぶことがあります また このような繰り返し処理のための 専用のオブジェクトを イテレータと呼びます このイテレータを提供するのが 「itertools」モジュールになるわけです まず モジュールをインポートします イテレーションの 「iter」と「tools」がくっついて モジュールの名前になっています 例えば 3回「a」という 文字を繰り返す イテレータを作るとします 「itertools」モジュールを使うと このように書けて 「it」と書かれた部分に 「a」を3回繰り返すイテレータが 代入されています イテレータは 「next」という関数の引数に取ると 値を次々に返してくれます 今3回繰り返すので もう1度 「next」を実行すると 「a」が返って来ます 4回目はどうなるでしょうか 4回目は返すものが無いので 「StopIteration」という例外が発生します もう一度 コードを実行して 同じイテレーションを行う イテレータを作ってみましょう イテレータは リスト関数の引数にすると 返すべき値を並べたリストになります 無限に繰り返す イテレータも作ることもできます 例えば 「cycle」という メソッドを使うと 「abc」の3文字を 無限に繰り返すイテレータが 返ってきます 最初は「a」です 2文字目は「b」 「c」が返ってきて 「a」に戻ります これが 無限に繰り返される イテレータなわけです 「itertools」モジュールには この他に もう少し高度な機能もあります 例えば 順列と呼ばれる繰り返しを 簡単に実行できるメソッドがあります 順列は 英語で「permutation」ですが 「permutations」というメソッドの 1つ目の引数に 「abcd」と書いて 2つ目の引数に 「2」を書きます このようにすると 「abcd」の 4文字から2文字を取り出す すべての組み合わせ いわゆる順列を計算してくれます すべてを一気に表示するために 返ってきたイテレータを リストにしてみましょう このように「abcd」 4つのうちから2文字を取り出す すべての組み合わせが 表示されています 「ab」の他に 「ba」もあるのがわかります 順列はこのように 順番が違っていれば 違うものだという判断で 組み合わせを列挙しますので これらを取り除いた いわゆる組み合わせも 「itertools」モジュールで 計算する事が出来ます それには 「combinations」 というメソッドを使います 同じように 1つ目の引数に 「abcd」 2つ目の引数に 「2」を与えると 組み合わせのイテレータが返ってきます すべてを表示するために リストに変更すると このような結果になります 「ab」はありますが 「ba」はありません これが順列と組み合わせの違いですが 「itertools」モジュールを使えば このように簡単に 出力する事が出来ます このレッスンでは 繰り返し処理に便利な 「itertools」モジュールを紹介しました

Python 基本講座

Pythonはシンプルな文法や豊富な標準ライブラリが特徴なので、誰でも手軽にプログラミングを始められます。このコースはでPythonの説明からプログラミングのための基本的な事柄などについて説明します。Pythonにはライブラリと呼ばれるプログラムを作るときに使える便利な部品もたくさん含まれているので、これらの使い方も具体例を挙げながら紹介します。

5時間04分 (62 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
講師:
発売日:2015年08月11日
再生時間:5時間04分 (62 ビデオ)

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。