🟩 Python学習記録 #11|sorted() と reverse=True を正しく理解する

Code

今回は Python の並び替えで必ず使う
sorted() 関数と reverse=True について学習しました。

特に reverse=True
「なんとなく使っているけれど、意味を正しく説明できない」
状態になりやすいポイントです。

Udemy の演習問題を通して、
その仕組みを整理しました。


■ Udemy演習問題

問題
List の要素を降順に並べ替えた上で print してください。


■ 解答コード

List = [35, 7, 26, 59, 55, 73, 90, 24, 13, 28, 20, 71, 8, 89, 81, 97, 39, 66, 42, 57]
print(sorted(List, reverse=True))

■ 実行結果

[97, 90, 89, 81, 73, 71, 66, 59, 57, 55, 42, 39, 35, 28, 26, 24, 20, 13, 8, 7]

リストの要素が
大きい値 → 小さい値 の順に並び替えられていることが分かります。


■ sorted() の基本動作(確認)

print(sorted(List))

実行結果

[7, 8, 13, 20, 24, 26, 28, 35, 39, 42, 55, 57, 59, 66, 71, 73, 81, 89, 90, 97]

sorted() は何も指定しない場合、
小さい値から大きい値へ(昇順) に並び替えます。


■ reverse=True の本当の意味

sorted(List, reverse=True)

これは
「降順に並べ替える魔法」ではありません。

実際には次の処理が行われています。

  1. まず昇順で並び替える
  2. その結果を 逆から読む(reverse)

■ イメージで理解する

nums = [3, 1, 5]

print(sorted(nums))
print(sorted(nums, reverse=True))

実行結果

[1, 3, 5]
[5, 3, 1]

このように、
reverse=True結果をひっくり返しているだけ です。


■ reverse は True / False の指定

sorted(nums, reverse=False)  # デフォルト(昇順)
sorted(nums, reverse=True)   # 逆順

reverse
「逆にしますか?」という Yes / No の指定 です。


■ よくある別の書き方(比較)

tmp = sorted(List)
tmp.reverse()
print(tmp)

実行結果

[97, 90, 89, 81, 73, 71, 66, 59, 57, 55, 42, 39, 35, 28, 26, 24, 20, 13, 8, 7]

sorted(List, reverse=True) は、
この処理を 1行で書ける省略形 だと理解できます。


■ 今日のまとめ

  • sorted() はデフォルトで昇順
  • reverse=True は「逆順にする」指定
  • 並び替えの基準を変えているわけではない
  • 出力結果を見ると仕組みが理解しやすい

「使える」だけでなく
「説明できる sorted()」 になった学習でした。


🔜 次のステップ候補(#12)

  • sorted()key 引数
  • 辞書やタプルの並び替え
  • 実務でよく使う並び替えパターン

コメント

タイトルとURLをコピーしました