【Python】リストと辞書をソートする
2021.09.02
2024.03.24
プログラミング
Pythonソート
はじめに
Pythonでのソートに関して、リストのソートや辞書のソートの書き方をまとめました。
sortとsoted
sort
はlist型のメソッドになります。元のリストがソートされます。
sorted
はソートしたリストを生成します。list型だけでなく、辞書型もソートできます。
これから紹介する例はsort
とsoted
で紹介します。
リストのソート
まずは1次元リストのソートです。
ソートするのは下記のリストです。
1li = [3, 1, 8, 4, 9, 2, 7, 6, 5]
昇順にソートします。
1li.sort()
2
3sorted_li = sorted(li)
1[1, 2, 3, 4, 5, 6, 7, 8, 9]
降順にソートします。
1li.sort(reverse=True)
2
3sorted_li = sorted(li, reverse=True)
1[9, 8, 7, 6, 5, 4, 3, 2, 1]
多次元リストのソート
次に多次元リストのソートです。
ソートするのは下記のリストです。
1li = [[2, 7], [7, 8], [1, 3], [7, 2], [9, 1], [2, 4], [5, 8]]
そのままソートすると1つ目の要素でソートされます。
1li.sort()
2
3soted_li = sorted(li)
1[[1, 3], [2, 4], [2, 7], [5, 8], [7, 2], [7, 8], [9, 1]]
ソートする要素の優先順位を変えたい場合はitemgetter
で要素を指定します。
1from operator import itemgetter
2
3li.sort(key=itemgetter(1, 0))
4soted_li = sorted(li, key=itemgetter(1, 0))
1[[9, 1], [7, 2], [1, 3], [2, 4], [2, 7], [5, 8], [7, 8]]
辞書型のソート
辞書型ではsort
が使えないので、sorted
のみになります。
ソートするのは下記になります。
1dic = {
2 7: 1,
3 2: 3,
4 5: 8,
5 1: 2,
6 4: 7,
7 6: 3,
8}
keys
辞書のキーのみをソートする場合は下記になります。
1sorted_keys = sorted(dic.keys())
1[1, 2, 4, 5, 6, 7]
values
辞書のバリューのみをソートする場合は下記になります。
1sorted_values = sorted(dic.values())
1[1, 2, 3, 3, 7, 8]
items
キーとバリューの組み合わせでソートする場合はitemgetter
を利用します。
itemgetter(0)
とするとキーでソートされます。
1from operator import itemgetter
2sorted_items = sorted(dic.items(), kes=itemgetter(0))
1[(1, 2), (2, 3), (4, 7), (5, 8), (6, 3), (7, 1)]
itemgetter(1)
とするとバリューでソートされます。
1from operator import itemgetter
2sorted_items = sorted(dic.items(), key=itemgetter(1))
1[(7, 1), (1, 2), (2, 3), (6, 3), (4, 7), (5, 8)]
参考
Share
関連記事
【Python】datetimeの基本的な使い方
2021.09.01
Next.js+MarkdownのブログにTocbotを使って目次を作成する
2024.04.15
【Python】Markdown形式のTableを出力する
2023.04.25