スポンサーリンク

このドキュメントの内容は、以下の通りです。

はじめに

データを扱っていると、データの並び順を変更したくなることがあります。アルファベット順だったり、数字順だったり、数字でも降順がよかったり、昇順が良かったり、ファイルだったら新しい順が良かったり、古い順が良かったり、ファイルが大きい順だったり、小さい順だったり、と扱うものや場合によって、求められる並び順は変わってきます。

ファイルであれば、unixの世界では、sortコマンドを活用することが多いのではないでしょうか。巨大なファイルに対して、sortコマンドを叩いたら、 MacBook Pro のファンが物凄い音でなり始めたりして、しかもコマンドが一向に終わる気配がない、なんてことも起こりがちです。

Pythonでの単純なリストのソート

Python では、データに対して、 sort() を利用して、データの並べ替えを行えます。以下に簡単な例を示します。リストを用いて、データを並べ替えて、表示するサンプルコードです。
>>> d = [9, 1, 3]
>>> d.sort()
>>> d
[1, 3, 9]
以上のように、簡単にデータを並べ替えることができます。

多次元リストの単純なソート

データ自体に何の意味もありませんが、多次元のリスト(この場合は、二次元のリスト)もソートできます。
[[70, 5], [80, 4], [10, 9], [30, 1]]
それでは、上記のデータをソートしてみましょう。リストの中に、リストがあり、それぞれ、2つのデータが入っています。リストの中のリストの1つ目の値でソートする例です。
>>> d = [[70, 5], [80, 4], [10, 9], [30, 1]]
>>> d.sort()
>>> d
[[10, 9], [30, 1], [70, 5], [80, 4]]
このように、sort()を呼び出すだけで、データが1つ目の値でソートされました。

多次元リストの2つ目の値でのソート

リストの中にリストが入っている、多次元のリストの場合の単純はソートについては、上記で説明しました。今度は、リストの中のリストの2つ目の値でソートする例をご覧に入れます。

ここでは、ラムダ式(lambda)を使用します。ラムダ式で、ソートするキーは2つ目の値(x[1])ですよ、と指定することで、sorted()は、data を2つ目の値でソートするようになります。
data = [[70, 5], [80, 4], [10, 9], [30, 1]]
data2 = sorted(data, key=lambda x: x[1])
print(data2)
上記を実行すると以下のデータを得られます。
[[30, 1], [80, 4], [70, 5], [10, 9]]

以上のように、ラムダ式(lambda)を使うことで、簡単に多次元リストのデータをソートできます。

リストの中にタプルが入っている場合のソート

以下のように、リストの中にタプルが入っている場合でも、上記の方法で簡単にソートできます。
data = [(70, 5), (80, 4), (10, 9), (30, 1)]

以下のように単純にソートできます。
data.sort()

また、二次元リストのように、ラムダ式を使って、2つ目の値でソートすることもできます。
data = [(70, 5), (80, 4), (10, 9), (30, 1)]
data2 = sorted(data, key=lambda x: x[1])

まとめ

Pythonのリストや多次元リストのデータを
  • sort()
  • sorted() で簡単にソートできます。
sortedとラムダ式(lambda)を組み合わせることによって、多次元リストの1つ目のデータ以外でもソートできます。

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

はてなの人気のブックマーク

スポンサーリンク
 

過去ログ

2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー