Pythonでリストを並び替える

Pythonのリストを順番に並び替えます。

目次

  1. Listオブジェクトのsortメソッドを使う
  2. sotrメソッドの実施例
  3. 組み込み関数sortedを使う
  4. sorted関数の実施例

Listオブジェクトのsortメソッドを使う

Listオブジェクトにはsortというメソッドがあります。これは、リストそのものを並び替えます。

L.sort(key, reverse)
変数 内容
L 並び替える対象となるリストオブジェクト
key 比較するキーを指定する関数。既定値はNone(要素を直接比較する)
reverse 並び替える方向。既定値はFalse

sotrメソッドの実施例

試してみました。

>>> L = ['stay','hungry','stay','foolish']
>>> L
['stay', 'hungry', 'stay', 'foolish']

>>> L.sort()
>>> L
['foolish', 'hungry', 'stay', 'stay']

>>> L.sort(reverse=True)
>>> L
['stay', 'stay', 'hungry', 'foolish']

組み込み関数sortedを使う

リストオブジェクトのsortメソッドはオブジェクトそのものを並び替えてしまいます。ちょっと使い勝手が悪かったりするので、組み込み関数のsortedを使ってみます。

res = sorted(L, key, reverse)
変数 内容
L 並び替える対象となるイテラブルなオブジェクト
key 比較するキーを指定する関数。既定値はNone(要素を直接比較する)
reverse 並び替える方向。既定値はFalse
res 並び替えられたリスト

イテラブルなオブジェクトなら並び替えられるので、リスト以外でもいけるようです。

sorted関数の実施例

試してみました。

>>> L = ['stay','hungry','stay','foolish']
>>> L
['stay', 'hungry', 'stay', 'foolish']

>>> sorted_L = sorted(L)
>>> L
['stay', 'hungry', 'stay', 'foolish']
>>> sorted_L
['foolish', 'hungry', 'stay', 'stay']

>>> rev_sorted_L = sorted(L,reverse=True)
>>> L
['stay', 'hungry', 'stay', 'foolish']
>>> rev_sorted_L
['stay', 'stay', 'hungry', 'foolish']

きちんと並び変わってるし、元のリストも残ってますね。

広告

Pythonのデータカテゴリの投稿