さつまろぐ

CAEとかプログラムとか、出来たことの記録など、誰かのお役に立てれば幸い。

Pythonで遊ぶ リストの操作3

リストの操作。前回の続き。我ながら中途半端なところで止まっている。

satsumalog.com

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つ(keyreverse)をとることができる。 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に独自の関数を指定すると、いろいろな用途に使える、らしい。 まだよくわかっていない。

広告