Pythonで行範囲内の最大値を求める方法
ネストされたリスト(リストの中にリストが入った構造)から、指定した行範囲内の最大値を求める必要がある場合は、range関数による単純な反復処理とmaxメソッドを組み合わせることで実現できます。
以下に具体的な実装例を示します。
サンプルコード
my_list = [[11, 35, 6], [9, 11, 3], [35, 4, 2],[8, 15, 35], [5, 9, 18], [5, 14, 2]]
print("The list is :")
print(my_list)
i, j = 2, 4
print("The values for integers are ")
print(i, j)
my_result = 0
for index in range(i, j):
my_result = max(max(my_list[index]), my_result)
print("The result is :")
print(my_result)
出力結果
The list is : [[11, 35, 6], [9, 11, 3], [35, 4, 2], [8, 15, 35], [5, 9, 18], [5, 14, 2]] The values for integers are 2 4 The result is : 35
コードの解説
まず、リストの中にリストが含まれるネストされたデータ構造を定義し、コンソールに表示します。
次に、2つの整数値(i と j)を定義して表示します。この例では i=2、j=4 となっており、3行目から4行目までが抽出対象の範囲となります。
結果を格納するための変数
my_resultを 0 で初期化します。range(i, j)を使って、指定された範囲のインデックスを順番に反復処理します。各インデックスに対応する行に対して
max(my_list[index])でその行の最大値を求め、現在のmy_resultと比較して、より大きい方を変数に代入していきます。ループが完了した時点で、範囲内全体の最大値が得られ、それがコンソールに出力されます。
より簡潔な書き方(補足)
上記のコードは初心者にも分かりやすい書き方ですが、Pythonではリストのスライスとジェネレータ式を組み合わせることで、同じ処理を1行で記述することもできます。
my_result = max(max(row) for row in my_list[i:j])
print("The result is :", my_result) # 出力: 35
my_list[i:j] の部分で指定範囲の行だけを取り出し、その各行の最大値を比較しています。可読性と効率の両面で優れているため、実務ではこちらの書き方が好まれることも多いです。
-
Pythonでパターンを出力する方法|三角形・数字・アルファベット・ピラミッドのコード例
Pythonでパターンを出力するには、ネストされた(入れ子構造の)forループを使用します。外側のループで行数を制御し、内側のループで列数を処理します。そしてprint文を工夫することで、目的に応じたさまざまなパターンを作成できます。パターンには、星(アスタリスク)パターン、数字パターン、アルファベットパターンなどがあり、三角形やピラミッドなど、さまざまな形状にも対応できます。パターン出力の基本これらのパターンは、print文を少し変更しながらforループを組み合わせることで出力できます。基本的な考え方はどのパターンも共通しており、違いはごくわずかです。ここからは、代表的なパターンのコードを実
-
Pythonで数値のピラミッドを生成する方法|基本パターンをコード例付きで解説
Pythonでは、数値を使ったピラミッド(三角形のパターン)を生成する方法がいくつかあります。この記事では、最も基本的な3つのパターンを、実際のコード例と出力結果とともにわかりやすく解説します。 パターン1:各行で1から連番を出力する まずは基本となる形です。外側のループで行数を制御し、内側のループで各行に出力する数字の個数を制御します。内側のループ変数 j に1を足すことで、1から始まる連番を表示しています。 for i in range(5): for j in range(i + 1): print(j + 1, end=) print() 出力結果 1