質問の内容からはズレてしまいますが、プログラム作り方の別のアプローチを挙げておきます。
まず、面積を求める必要があるので、面積を求める関数を作ります。
最大値を求めるのであれば max関数、最小値を求めるのであれば min関数 が使えるか考えてみます。
欲しい値はインデックス番号なので、インデックス番号の中から max、min を探します。
max, min では key引数で比較する値を取り出す関数を指定できます。
その他、いろいろな max, min関数の使い方を紹介します。
python
1def calc_rect_area(rect):
2 a, b = rect
3 return a * b
4
5def get_smallest_rect_index(rects):
6 return min(range(len(rects)), key=lambda index: calc_rect_area(rects[index]))
7
8def get_largest_rect_index(rects):
9 return max(range(len(rects)), key=lambda index: calc_rect_area(rects[index]))
10
11def get_smallest_rect(rects):
12 return min(rects, key=calc_rect_area)
13
14def get_largest_rect(rects):
15 return max(rects, key=calc_rect_area)
16
17def get_smallest_rect_area(rects):
18 return min(map(calc_rect_area, rects))
19
20def get_largest_rect_area(rects):
21 return max(map(calc_rect_area, rects))
22
23rects = [
24 [2.1, 4.1],
25 [0.5, 1.1],
26 [2.5, 3.2],
27]
28
29print("min index:", get_smallest_rect_index(rects))
30print("max index:", get_largest_rect_index(rects))
31print("min rect:", get_smallest_rect(rects))
32print("max rect:", get_largest_rect(rects))
33print("min area:", get_smallest_rect_area(rects))
34print("man area:", get_largest_rect_area(rects))
実行結果:
min index: 1
max index: 0
min rect: [0.5, 1.1]
max rect: [2.1, 4.1]
min area: 0.55
man area: 8.61