Python の sort() メソッドは、配列の並べ替えに使用されます。この記事では、例の形式でこれについて詳しく説明します。
1.基本形
リストには、リストをその場でソートする独自のソートメソッドがあります。これはインプレースソートであるため、タプルは変更できないため、このメソッドを持てないことは明らかです。
x = [4, 6, 2, 1, 7, 9] x.sort() print x # [1, 2, 4, 6, 7, 9]
x =[4, 6, 2, 1, 7, 9] y = x[ : ] y.sort() print y #[1, 2, 4, 6, 7, 9] print x #[4, 6, 2, 1, 7, 9]
y = x[:] は、シャーディング操作を通じてリスト x のすべての要素を y にコピーします。単に x を y に代入する場合: y = x、y および x は同じリストを指します。コピーが生成されます 。
ソートされたリストのコピーを取得する別の方法は、sorted 関数を使用することです。
x =[4, 6, 2, 1, 7, 9] y = sorted(x) print y #[1, 2, 4, 6, 7, 9] print x #[4, 6, 2, 1, 7, 9]
print sorted('Python') #['P', 'h', 'n', 'o', 't', 'y']
2. カスタム比較関数
独自の比較関数を定義し、パラメータを通じて並べ替えメソッドに渡すことができます。
def comp(x, y): if x < y: return 1 elif x > y: return -1 else: return 0 nums = [3, 2, 8 ,0 , 1] nums.sort(comp) print nums # 降序排序[8, 3, 2, 1, 0] nums.sort(cmp) # 调用内建函数cmp ,升序排序 print nums # 降序排序[0, 1, 2, 3, 8]
3. オプションのパラメータ
sort メソッドには、key と reverse という 2 つのオプションのパラメータもあります
1. キーを使用する場合は、並べ替えプロセスによって呼び出される関数を提供する必要があります:
x = ['mmm', 'mm', 'mm', 'm' ] x.sort(key = len) print x # ['m', 'mm', 'mm', 'mmm']
y = [3, 2, 8 ,0 , 1] y.sort(reverse = True) print y #[8, 3, 2, 1, 0]