今回は 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)
これは
「降順に並べ替える魔法」ではありません。
実際には次の処理が行われています。
- まず昇順で並び替える
- その結果を 逆から読む(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 引数- 辞書やタプルの並び替え
- 実務でよく使う並び替えパターン


コメント