読者です 読者をやめる 読者になる 読者になる

Pythonで生成したリストの並び替え

Python

取り扱う対象は1次元のリスト。リストは昇順・降順に並び替えたり、長さ順に並び替えたりすることが多い。以下のようなリストに変更を加えていく。個人名は適当に生成したつもり。

Ipython使ってるので入出力の接頭文字が付いてます。

In [14]: NameList  = ['佐藤一','小林武彦','渡辺浩二','麻生信雄','西川ともこ','池田宏','国貞真一郎','佐藤ひとみ']

昇順・降順の並び替え

これを昇順に並び替えるには"sortメソッド"を使う。

In [15]: NameList.sort()

In [16]: NameList
Out[16]: ['佐藤ひとみ', '佐藤一', '国貞真一郎', '小林武彦', '池田宏', '渡辺浩二', '西川ともこ', '麻生信雄']

Pythonのsortメソッドは破壊的メソッドの一種なので、上記の変更をかけた場合、"NameList"は昇順に書き換わってしまう。 昇順を降順に切り替えたいのであれば、"reverseメソッド"を使えば良い。

In [17]: NameList.reverse()

In [18]: NameList
Out[18]: ['麻生信雄', '西川ともこ', '渡辺浩二', '池田宏', '小林武彦', '国貞真一郎', '佐藤一', '佐藤ひとみ']

長さ順の並び替え

sortメソッドのカッコ内に引数を与えることで長さ順に並び替える事ができる。

In [19]: NameList.sort(key=len)

In [20]: NameList
Out[20]: ['池田宏', '佐藤一', '麻生信雄', '渡辺浩二', '小林武彦', '西川ともこ', '国貞真一郎', '佐藤ひとみ']

逆順にしたい場合は前項と同じくreverseを使うと良い。

sort系は2次元配列の特定列を指定して並び替えたりも出来るみたい。

ソート HOW TO — Python 2.7ja1 documentation