リストの操作。前回の続き。我ながら中途半端なところで止まっている。
sort
sort
メソッドはリストの並び替えを行う。ソートされたリストを返すのではなく、元のリストを変更するので注意。
>>> x = [3, 2, 5, 9, 7, 1, 4] >>> x.sort() #←この時点では何も表示されない >>> x [1, 2, 3, 4, 5, 7, 9]
元のリストをそのままに、元のリストをコピーしてソートしたい場合は注意が必要。
>>> x = [3, 2, 5, 9, 7, 1, 4] >>> y = x.sort() #x.sort( ) は何も返さないので、yには何も代入されない。 >>> print(y) None #結果 None となる。
リストをコピーしてソートする際は、.copy()
してから行う。
>>> x = [3, 2, 5, 9, 7, 1, 4] >>> y = x.copy() >>> y.sort() >>> x ; y; [3, 2, 5, 9, 7, 1, 4] [1, 2, 3, 4, 5, 7, 9]
ソートの詳細指定
sort
メソッドは、オプションの引数を2つ(key
とreverse
)をとることができる。
key
は後述のkey=len
のような名前と値を指定する。引数keyは関数を指定し、その関数がソートに使われる。
>>> x = ['aaef', 'bcd', 'abs', 'ddee', 'ca', ] >>> x.sort() >>> x ['aaef', 'abs', 'bcd', 'ca', 'ddee'] >>> x.sort(key=len) >>> x ['ca', 'abs', 'bcd', 'aaef', 'ddee']
reverseは真偽値を指定することで、逆順にソートされる。
>>> x = [3, 2, 5, 9, 7, 1, 4] >>> x.sort() >>> x [1, 2, 3, 4, 5, 7, 9] >>> x.sort(reverse=True) >>> x [9, 7, 5, 4, 3, 2, 1]
key
に独自の関数を指定すると、いろいろな用途に使える、らしい。
まだよくわかっていない。