Pythonで指定した範囲の数値リストを生成する3つの方法
Pythonは、豊富なライブラリと多彩なメソッドによって、データ操作に関するあらゆる要件に柔軟に対応できる言語です。たとえば「ある2つの数値の間に存在するすべての数値を生成したい」といった場面では、Pythonの組み込み関数や標準・外部ライブラリを活用することで簡単に実現できます。本記事では、指定範囲内の数値リストを作成する代表的な3つの手法を、サンプルコードとともにわかりやすく解説します。
方法1:range()関数を使う
range()関数は、デフォルトでは0から始まり、1ずつ増加しながら指定した数値の手前までの数値シーケンスを返します。開始値・終了値・増加ステップ(間隔)はすべて自由に指定でき、用途に合わせて柔軟に変更可能です。返り値はrangeオブジェクトなので、list()で囲むことでリストとして扱えます。
サンプルコード
def getnums(s, e, i):
return list(range(s, e, i))
# Driver Code
start, end, intval = -3, 6, 2
print(getnums(start, end, intval))実行結果
上記のコードを実行すると、次の出力が得られます。
[-3, -1, 1, 3, 5]
この例では、-3から6未満までの範囲を2刻みで生成しているため、負の値を含む等差数列がリストとして取得できています。
方法2:randrange()でランダムな数値を取得する
標準ライブラリのrandomモジュールにも、randrange()という類似のメソッドが用意されています。range()と同じく開始値・終了値・間隔を引数として指定できますが、こちらは範囲内からランダムに1つの数値を返す点が特徴です。「範囲の中から無作為に1つだけ数値がほしい」というケースに適しています。
サンプルコード
import random
def getnums(s, e, i):
return random.randrange(s, e, i)
# Driver Code
start, end, intval = 3, 16, 2
print(getnums(start, end, intval))実行結果
上記のコードを実行すると、次のような出力が得られます(実行ごとに値は変わります)。
7
この例では、3から16未満までの範囲を2刻みとした候補(3, 5, 7, 9, 11, 13, 15)の中から、ランダムに1つが選ばれています。
方法3:numpy.arange()を使う
数値計算ライブラリのNumPyも、この種の要件に対応する強力な関数を提供しています。np.arange()はrange()と同様に開始値・終了値・間隔を受け取り、結果をNumPy配列(ndarray)として返します。大量の数値を高速に処理したい場合や、後続の数値計算にそのまま渡したい場合に特に便利です。
サンプルコード
import numpy as np
def getnums(s, e, i):
return np.arange(s, e, i)
# Driver Code
start, end, intval = 3, 16, 2
print(getnums(start, end, intval))実行結果
上記のコードを実行すると、次の出力が得られます。
[ 3 5 7 9 11 13 15]
まとめ
指定範囲の数値リストを生成する方法として、以下の3つを紹介しました。
- range(): 標準機能のみで手軽に使える基本の方法。リスト化には
list()が必要。 - random.randrange(): 範囲内からランダムに1つの数値を取得したい場合に最適。
- numpy.arange(): NumPy配列として結果が得られ、大規模データや数値計算との相性が抜群。
用途に応じてこれらを使い分けることで、Pythonでの数値データ生成をより効率的に行えます。
-
指定した範囲内の乱数を生成してリストに保存するPythonプログラム
このプログラムでは、3つのユーザー入力変数を使用します。1つ目は乱数の開始値、2つ目は終了値、3つ目は生成して表示する乱数の個数です。 Pythonには乱数を生成するための標準モジュール random が用意されています。本記事では、その中でも指定した範囲内の整数乱数を返す randint() 関数を使用します。randint() は2つの引数(開始値と終了値)を受け取り、両端の値を含む範囲からランダムな整数を1つ返します。 実行例 n :: 10 s :: 20 e :: 40 [20, 35, 32, 27, 24, 35, 28, 31, 20, 28] アルゴリズム Random
-
Pythonでzip()と内包表記を使ってリストから辞書を作成する方法
Pythonでは、2つのリスト(キーと値)を組み合わせて辞書を作成したい場面がよくあります。この記事では、組み込み関数 zip() と dict()、さらにPython 3.xで利用できる辞書内包表記を使った2つの方法をわかりやすく解説します。 方法1:dict()とzip()を組み合わせる zip() はPythonの組み込み関数で、複数のリストから同じインデックス位置にある要素を取り出し、タプルのペア(イテレータ)として返します。一方のリストをキー、もう一方を値とすれば、このzipオブジェクトを組み込み関数 dict() に渡すだけで、簡単に辞書オブジェクトを構築できます。 >&