Python sortとソート


Pythonにはソートのための内蔵関数があります.内蔵関数sortとメソッドsortedの違いと、それらがどのように利用されているかを見てみましょう.
1. sortsortは、リストソート方法を使用して既存のリストをソートし、Noneを返します.
リストをソートするしかなく、ディック・シャナリー、トゥーフォードなどはsortを使用できません.
list_a=[3,2,1,4,5]
list_a.sort()
print(list_a)

# 결과: [1, 2, 3, 4, 5]
2. sortedsortedsortとは異なり、iterable 객체で使用可能である.新しいオブジェクトを返すため、速度はsortより遅い.
list_a = [3, 2, 1, 4, 5]
list_b=sorted(list_a)
print(list_b)

# 결과: [1, 2, 3, 4, 5]
ディクシャナ型では,ボタン並べ替えの方法の1つとして,items法とsorted関数,dict関数を用いた.
from collections import defaultdict

dict_a = defaultdict(str)
dict_a[3]
dict_a[2]
dict_a[1]

print(dict(sorted(dict_a.items())))

# 결과: {1: '', 2: '', 3: ''}
ディクシャナで値順に並べ替えたいなら、どうすればいいですか?sorted関数のkeyを利用する方法があります!
keysortおよびsortedにはkeyパラメータが存在し、keyおよびlambda関数を用いて所望の基準に従ってソートすることができる.
dict_a = {
    "라면": 1000,
    "과자": 1200,
    "커피": 3800,
    "사탕": 500
}
dict_b = dict(sorted(dict_a.items(), key=lambda x: x[1]))
print(dict_b)

# 결과: {'사탕': 500, '라면': 1000, '과자': 1200, '커피': 3800}
凡例をソートする場合は、凡例の1番目の値を基準に昇順ソートを行い、1番目の値が同じであれば、凡例の2番目の値を基準に降順ソートを行います.
dict_a = [(1, 100), (3, 300), (2, 100), (4, 700), (3, 900)]
dict_b = sorted(dict_a, key=lambda x: (x[0], -x[1]))
print(dict_b)

# 결과: [(1, 100), (2, 100), (3, 900), (3, 300), (4, 700)]
このように、keyでは-符号を付けて降順ソートすることができるが、sortおよびsorted関数にはreverseパラメータが存在する.
reverse
降順でソートする場合は、reverseTrueに設定できます.
list_a = [5, 4, 2, 1, 3, 8, 7, 6, 9, 10]
print(sorted(list_a, reverse=True))

# 결과: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
ソースとコメント
  • https://blockdmask.tistory.com/466