Python
 Computer >> コンピューター >  >> プログラミング >> Python

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での数値データ生成をより効率的に行えます。

  1. 指定した範囲内の乱数を生成してリストに保存する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

  2. Pythonでzip()と内包表記を使ってリストから辞書を作成する方法

    Pythonでは、2つのリスト(キーと値)を組み合わせて辞書を作成したい場面がよくあります。この記事では、組み込み関数 zip() と dict()、さらにPython 3.xで利用できる辞書内包表記を使った2つの方法をわかりやすく解説します。 方法1:dict()とzip()を組み合わせる zip() はPythonの組み込み関数で、複数のリストから同じインデックス位置にある要素を取り出し、タプルのペア(イテレータ)として返します。一方のリストをキー、もう一方を値とすれば、このzipオブジェクトを組み込み関数 dict() に渡すだけで、簡単に辞書オブジェクトを構築できます。 >&