リストを並べ替えるためのアルゴリズムには様々なもの(シェルソート,バブルソート,マージソート,クイックソートなど)があり,それぞれの特徴を理解し,適切なアルゴリズムを利用して,自分でコードを書けるようになるべきです.しかしながら,Python ではリストのソートに関しても関数が準備されています.リスト関数である sort()
は,リスト自体をソートする(つまり,リスト自体を書き換える).
# リストをソートする
scores = [30, 60, 55, 40]
scores.sort()
print(scores)
[30, 40, 55, 60]
降順でソートするには reverse=True
引数を追加すると良いでしょう.
# リストを降順でソートする
scores = [30, 60, 55, 40]
scores.sort(reverse=True)
print(scores)
[60, 55, 40, 30]
一方で,汎用関数の sorted()
は,ソートされたリストのコピーを返す(つまり,リストを書き換えない).
# socores リストをソートした結果を sorted_scores リストに代入する
scores = [30, 60, 55, 40]
sorted_scores = sorted(scores)
print(sorted_scores)
print(scores) # リストは書き換えられていない
[30, 40, 55, 60] [30, 60, 55, 40]
sort()
関数と同様に,降順でソートするには reverse=True
引数を追加すると良いでしょう.
# socores リストを降順でソートした結果を sorted_scores リストに代入する
scores = [30, 60, 55, 40]
sorted_scores = sorted(scores, reverse=True)
print(sorted_scores)
print(scores) # リストは書き換えられていない
[60, 55, 40, 30] [30, 60, 55, 40]