[Python]ソートの整理(sort,sorded)
開始します。
アルゴリズムに役立つソート関数をまとめたいと思います!🙌
Pythonには、・・sort()
およびsorted()
関数があります.では、両者の違いと選択肢を理解してみましょう.
sort()
sort()
オリジナルを並べ替えたまま.sort_list = [1,5,23,5,2343,124]
sort_list.sort()
print(sort_list)
>>> [1, 5, 5, 23, 124, 2343]
上記のコードに示すようにsortリスト自体はソートされています.sorted()
sorted()
変形しないオリジナルは新しいリストに戻ります.sorted_list = [1,5,23,5,2343,124]
result = sorted(sorted_list)
print("result: ", result)
print("원본: ",sorted_list)
>>> result: [1, 5, 5, 23, 124, 2343]
>>> 원본: [1, 5, 23, 5, 2343, 124]
このように、既存のリストsord listはそのままであり、新しいソートされたリストを返した結果、ソートされたことを示す.sort()
元の順序に戻ります.sorted()
順序を変更したリストに戻ります.reverse
sort()
のうち2パラメータkey, reverse
降順に必要なパラメータはreverseです.reverse = True
で与えられ、降順のリストが得られる.sort_list = [1,5,23,5,2343,124]
sort_list.sort(reverse=True)
>>> [2343, 124, 23, 5, 5, 1]
sorted_list = [1,5,23,5,2343,124]
result = sorted(sorted_list, reverse=True)
>>> result: [2343, 124, 23, 5, 5, 1]
>>> 원본: [1, 5, 23, 5, 2343, 124]
key
key = True
を使用します.str_list = ["세글자", "두울", "일", "네에글자"]
str_list.sort(key=len)
>>> ['일', '두울', '세글자', '네에글자']
lambdaを用いて学生の成績をソートする
score_list = [
("A학생", 60),
("B학생", 80),
("C학생", 50),
("D학생", 70),
]
score_list.sort(key = lambda x : -x[1])
>>> [('B학생', 80), ('D학생', 70), ('A학생', 60), ('C학생', 50)]
Lambdaでは、手前が-x[0]
とすると、reverse=Trueと同じ効果が得られます.Lambdaを使用したマルチ条件ソート
score_list = [
("A학생", 60),
("B학생", 80),
("C학생", 50),
("D학생", 70),
("E학생", 70),
]
score_list.sort(key = lambda x : (-x[1], x[0]))
>>> [('B학생', 80), ('D학생', 70), ('E학생', 70), ('A학생', 60), ('C학생', 50)]
Reference
この問題について([Python]ソートの整理(sort,sorded)), 我々は、より多くの情報をここで見つけました https://velog.io/@0__h0__/Python-정렬sort-sorted-정리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol