Pythonで再帰を使ってリストの長さを求めるプログラム
Pythonで再帰(リカーション)の手法を使ってリストの長さを求めるには、ユーザー定義の関数とシンプルなスライス(インデックス)操作を組み合わせます。
リストは、整数・浮動小数点数・文字列など、異なるデータ型の値を混在させて格納できる便利なデータ構造です。
再帰とは、大きな問題をより小さな部分問題に分割して計算し、その結果を組み合わせることで全体の答えを導き出す手法です。今回の例では、リストをスライスで分割しながら要素数を数えていきます。
サンプルコード
以下に具体的な実装例を示します。
def list_length(my_list):
if not my_list:
return 0
return 1 + list_length(my_list[1::2]) + list_length(my_list[2::2])
my_list = [1, 2, 3, 11, 34, 52, 78]
print("The list is :")
print(my_list)
print("The length of the string is : ")
print(list_length(my_list))実行結果
The list is : [1, 2, 3, 11, 34, 52, 78] The length of the string is : 7
コードの解説
- まず、リストを引数として受け取る list_length 関数を定義します。
- リストが空の場合(
if not my_list)、これ以上要素がないことを意味するため 0 を返します。これが再帰の終了条件(ベースケース)です。 - リストが空でない場合は、先頭の1要素を数え(+1)、残りの要素をスライス
[1::2]と[2::2]で奇数番目と偶数番目の2つの部分リストに分割し、それぞれに対して再帰的に同じ関数を呼び出します。 - このようにリストを半分ずつに分けていくことで、効率的に全要素を数えることができます。
- 関数の外側では、7つの要素を持つリストを定義し、コンソールに表示しています。
- 最後に、このリストを引数として list_length を呼び出し、得られた長さ「7」をコンソールに出力します。
この手法を使えば、len() 関数に頼らずに、再帰の仕組みを通じてリストの長さを求めることができます。再帰の考え方を理解する良い練習例としても役立ちます。
-
Pythonでリスト内の最小値を見つける方法を解説
この記事では、リストの中から最小の数値を見つける方法について、具体的なサンプルコードとともに詳しく解説します。問題の概要問題: 数値のリストが与えられたとき、その中に含まれる最も小さい数値を画面に表示すること。この問題を解くアプローチは主に2つあります。ひとつは sort() メソッドを使ってリストを昇順に並べ替え、先頭の要素(インデックス0)を取得する方法。もうひとつは、Pythonに標準で用意されている組み込み関数 min() を使う方法です。それぞれ順番に見ていきましょう。方法1:sort()メソッドで並べ替えて最小値を取得するまずはリストを昇順にソートし、先頭の要素を取り出す方法です。
-
Pythonでリスト内の最大値を見つける方法をわかりやすく解説
この記事では、Pythonを使ってリストの中から最大の要素(最大値)を見つける方法について解説します。初心者の方でも理解しやすいよう、複数のアプローチをコード例とともに紹介していきます。 問題の概要 問題文: 与えられたリストの中から、最も大きい要素を求めて出力してください。 Pythonには便利な組み込み関数が用意されているため、これらを活用することで短いコードで効率的に問題を解決できます。ここでは主に sort() メソッドと max() 関数の2つの方法を取り上げます。 方法1:sort() 関数を使う sort() メソッドはリストを昇順に並べ替えます。並べ替え後のリストの末尾(インデ