1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

「数億規模スタートアップのCTO講師」と「エンジニアキャリア専門のポテパン」が贈る、実践型Rubyスクール。

【Python入門】range関数で繰り返し処理をする方法とは?

【Python入門】
Pocket

Pythonではfor文を使って一定の回数だけ処理を繰り返すことがあります。その際に、数値のリストを用意してその長さだけ回すこともできますが、rangeを使うともっと楽に、Pythonらしい記述をすることができます。

今回はPythonのrangeの使い方について説明します。

rangeの使い方

Pythonで一定回数処理を繰り返す場合は、その回数文の長さのリストを使うことで実現できます。例えば、5回繰り返したい場合は長さ5のリストを使います。

実行結果

ループ回数:5

この方法でも問題はありませんが、例えば100回や1000回といった長い回数繰り返す場合は、それだけの長さのリストを用意するのは面倒ですし、時間もかかります。

特定の数だけループを繰り返したい場合はrange関数を使いましょう。range関数は指定した長さの、連続した整数のリストを自動で生成する関数です。for文とrange関数を組み合わせることで、任意の回数だけループをすることができます。

rangeには始まりの数値、最後の数値、増加する量の3つの引数がありますが、このうち始まりの数値と増加する量は省略することができます。range()に数値を1つ渡すと、それが最後の数値となり、0から「最後の数値 – 1」までの値が格納されたリストが作成されます。

実行結果

0
1
2
3
4
ループ回数:5

この例ではrange()に5を渡しているので、「0から4までの要素を持つ長さ5のリスト」が作られ、そこから一つずつ要素を取り出すので、5回のループを行うことができます。最初の数字を0ではなく任意の数字にしたい場合は、引数の「始まりの数値」を入力します。

実行結果

1
2
3
4
ループ回数:4

rangeの引数を(5)から(1,5)に変更しました。これにより、rangeによって返されるのが「1から4までの要素を持つ長さ4のリスト」になったので、ループ回数が4回になりました。

また、「増加する量」を指定すれば、次の要素に追加される値も自由に変えることができます。これにより、0から8まで2ずつ増えるリストや、0から9まで3ずつ増えるリストなどを簡単に作ることができます。

実行結果

0
2
4
6
8
ループ回数:5

この例では開始が0, 最後が10になっていますが、増える量を2にしています。そのためrangeは「0から8まで2ずつ増える長さ5のリスト」を返すことになるので、ループ回数は5回となります。

また、rangeでは負の数を使うことができます。始まりの値と最後の値を逆にし、増える量を負の数にすることで、逆順に並んだリストを作成することもできます。

実行結果

10
8
6
4
2
ループ回数:5

xrangeとの違い

Pythonのバージョンが2.x.xの場合は、rangeとよく似た関数としてxrangeがあります。xrangeは使い方や実行結果はrangeと全く同じです。

実行結果

0
1
2
3
4
ループ回数:5

では、rangeとxrangeとの違いは何かというと、xrangeのほうがメモリを節約できるという点です。rangeは引数で指定された要素を持つリストを作り、そのリストから要素を取り出すようにしてfor文を実行します。これに対してxrangeでは最初にリストを作ってからfor文を実行するのではなく、for文で取り出す際に必要に応じて値を生成します。つまりリストを作らないため、同じ処理を行う上でもxrangeのほうがメモリを節約することができます。

ただ、rangeとxrangeの差はとても些細なものなので通常ではわざわざxrangeを使う必要がありません。基本的にはrangeを使うとよいでしょう。

また、Python3系では、rangeの構造がxrangeに近いものになったのでxrange自体が廃止されてしまいました。そのため、Python3系の場合は特に気にせずrangeを使うとよいでしょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

おすすめスクール

システムアーキテクチュアナレッジ

システムアーキテクチュアナレッジ システムアーキテクチュアナレッジでは、ITスクールとしては珍しく正規雇用かつ現役のエンジニアが講師を務めています。「責任を持ったIT教育」をテーマに、未経験者をプロフェッショナルに育てます。
ページ上部へ戻る