Pythonでリスト内の最大値を見つける方法|sort()とmax()の2つのアプローチ
この記事では、リストの中から最大の数値を見つけるための解決策とアプローチについて詳しく解説します。
問題の概要
数値のリストが与えられたとき、その中から最大の要素を見つけ出す必要があります。Pythonでは、主に以下の2つの方法でこれを実現できます。
- ソート(並べ替え)を利用する方法
- 組み込み関数 max() を利用する方法
アプローチ1:sort() 関数を使う方法
リストを sort() メソッドで昇順に並べ替えると、リストの最後の要素(インデックス -1)が必ず最大値になります。
サンプルコード
list1 = [18, 65, 78, 89, 90]
list1.sort()
# メイン処理
print("最大の要素は:", list1[-1])実行結果
最大の要素は: 90
なお、sort() は元のリスト自体を変更する点に注意してください。元のリストを保持したい場合は、sorted() 関数を使用するのがおすすめです。
アプローチ2:max() 関数を使う方法
Pythonには、最大値を直接取得できる組み込み関数 max() が用意されています。コードがシンプルになり、可読性も大きく向上します。
サンプルコード
list1 = [18, 65, 78, 89, 90]
# メイン処理
print("最大の要素は:", max(list1))実行結果
最大の要素は: 90
パフォーマンスの比較
sort() を使う方法の計算量は O(n log n) である一方、max() を使う方法は O(n) です。そのため、最大値だけが必要な場合は max() 関数の方が効率的です。
まとめ
この記事では、リストから最大値を見つける2つのアプローチ(sort() を使う方法と max() を使う方法)について学びました。シンプルさと処理効率の両面から、通常は max() 関数を使用することが推奨されます。
-
Pythonでリストの累積和(累積合計)を求める方法
この記事では、リストの累積和(累積合計)を求める問題の解決策について詳しく解説します。問題文あるリストが与えられたとき、各要素までの累積和を格納した新しいリストを作成する必要があります。例えば、[10, 20, 30, 40, 50] というリストが与えられた場合、出力は [10, 30, 60, 100, 150] となります。これは、各位置でそれ以前の要素をすべて足し合わせた値です。実装例それでは、実際の実装を見ていきましょう。# 累積和を求める関数 def Cumulative(l): new = [] cumsum = 0 for element in l:
-
【Python】ある数の最大の素因数を求めるプログラムの書き方
この記事では、「与えられた整数の最大の素因数を求める」という問題に対する解決方法を、具体的なコード例とともにわかりやすく解説します。 問題文 正の整数 n が与えられたとき、その数の最大の素因数を求めます。 例えば n = 15 の場合、15 は 3 × 5 と素因数分解できるため、答えは 5 となります。 解き方のアプローチ 入力された数を、小さい約数から順番に割っていくことで素因数分解します。 割り切れるたびに、その時点での約数(素因数)を「最大値」として更新していきます。 平方根まで調べれば十分なため、計算量を抑えられます。 実装例(サンプルコード) import math def