【python】listの順番を変える様々な方法

【python】listの順番を変える様々な方法Python
ゆうすけ
ゆうすけ

list内の順番を変えるにはどうしたら良いんでしょう・・・?

資格マフィア
資格マフィア

Pythonにはlist内の順番を入れ替える様々な関数が用意されているぞ。

 

✔️ 本記事のテーマ

Pythonのlist内の順番を入れ替える方法

✔️ 読者さんへの前置きメッセージ

本記事は「pythonのlist内を操作する関数」について書いています。

 

この記事を読むことで
「Python の reverse(), reversed()、shuffle(), sample()、sort(), sorted()」
について理解できます。

 

Pythonにはlist内の順番を操作する様々な方法が用意されています。

 

それらについての知識を頭に入れておくことで、
コードを書くときにやりたいことを実現するときの助けになるでしょう。

 

この記事ではそういった「list内の順番を入れ替える方法」について解説しています。

 

それでは、解説していきましょう。

list内の順番を逆順にする

list内の順番を逆順にする

まずはlist内の順番を逆にしてみましょう。

 

逆順にするにはreverse()を使用します。

origin = [1, 4, 2, 5, 3]

origin.reverse()

print(origin)
# [3, 5, 2, 4, 1]

 

このようにリスト.reverseとすることでlist内を逆順に並び替えることができます。

 

また、reverse()は元のlistを逆順にするlist型のメソッドですが、
組み込み関数reversed()は元のlistとは別に新たなイテレータを生成します。

origin = [1, 4, 2, 5, 3]

new = reversed(origin)

print(list(new))
# [3, 5, 2, 4, 1]

 

なお、reversed()はあくまでもイテレータを返すので、listにする場合はlist()で変換します。

 

list内の順番をランダムにシャッフルする

list内の順番をランダムにシャッフルする

次はlist内の順番をランダムにする方法です。

 

list内の順番をシャッフルするにはrandom.shuffle()を使用します。

import random

origin = [1, 4, 2, 5, 3]

random.shuffle(origin)

print(origin)
# [2, 3, 1, 5, 4]

 

このようにrandom.shuffle()を使うことで、
list内の順番をランダムに並び替えることができます。

 

また、こちらも元のlistを変更するのではなく、
新たなlistを生成する関数:random.sample()も用意されています。

import random

origin = [1, 4, 2, 5, 3]

new = random.sample(origin, len(origin))

print(new)
# [4, 5, 2, 1, 3]

 

このようにrandom.sample()を使えば、
list内の順番をランダムに入れ替えた新たなlistを生成することができます。

 

なお、random.sample()は

  • 第1引数に「対象のlist」 
  • 第2引数に「新たに生成するlistの要素数」

を指定します。

 

基本的には上のコードのようにlen()を使って要素数を指定すれば問題ないと思います。

 

list内の順番を昇順にする

list内の順番を昇順にする

次はlist内の要素を昇順に並び替える方法を紹介しましょう。
降順とは「値の小さなものを前」に並べることです。

 

降順に並び替えるにはlist型のメソッドであるsort()を使用します。

origin = [3, 1, 4, 5, 2]

origin.sort()

print(origin)
# [1, 2, 3, 4, 5]

 

sort()は元のlistを操作しますが、
組み込み関数:sorted()を使用することで新たなlistを作ることもできます。

origin = [3, 1, 4, 5, 2]

new = sorted(origin)

print(new)
# [1, 2, 3, 4, 5]

list内の順番を降順にする

list内の順番を降順にする

sort()やsorted()のオプションreverseを使うことで、list内を降順に並べることもできます。
降順とは「値の大きなものを前」に並べることです。

origin = [3, 1, 4, 5, 2]

new = sorted(origin, reverse=True)

print(new)
# [5, 4, 3, 2, 1]

 

このようにlist内の順番を昇順にするの時とは違って、要素が降順に並んでいます。

 

組み込み関数のsorted()も同じです。

origin = [3, 1, 4, 5, 2]

origin.sort(reverse=True)

print(origin)
# [5, 4, 3, 2, 1]

list内のn番目とm番目を入れ替える

list内のn番目とm番目を入れ替える

最後に「list内のn番目とm番目を入れ替える」方法も解説しておきます。

 

こちらはPythonの標準関数ではありませんが、
以下のように書くことで要素を簡単に入れ替えることができます。

origin = [3, 1, 4, 5, 2]

origin[2], origin[3] = origin[3], origin[2]

print(origin)
# [3, 1, 5, 4, 2]

 

こうすることで要素の入れ替えを1行で書くことができるので、
簡潔なコードになります。

Pythonについて基礎からしっかり学ぶなら

Pythonについて基礎からしっかり学ぶなら

Pythonのcopyの仕様について解説しました。

 

Pythonの言語仕様についてきちんと理解するなら、

Pythonを深く網羅的に学ぶためには以下の書籍がオススメです。

 

この書籍はPythonについてかなり深く、そして丁寧に書かれています。

Python の基本文法だけでなく、

いかにして Python の持つ力を最大限引き出せるかという視点で書かれています。

 

Python 初心者はもちろん、すでに Python を使える方にもオススメの一冊です。

エンジニアとしての自身の価値をチェックする(完全無料)

エンジニアとして、

自分の価値がどれくらいのものかご存知でしょうか?

 

エンジニアとしてIT業界に身を置いていると

今の会社でずっと働くのか、フリーランスとして独立するのか …

と様々な選択肢があります。

 

どの選択肢が正解なのかを見極めるためにも、選択肢を広げるためにも

自身の価値を知っておくことはとても重要です。

 

TechClips ME では、

職務経歴書をアップロードするだけで企業からのスカウトを受けることができます。

▼▼▼▼▼

▲▲▲▲▲

しかもTechClips MEでは想定年収を企業から提示してくれるので、

自身の価値を数字で分かりやすくたしかめることができます。

 

登録はもちろん完全無料なので、一度登録してみると良いかもしれません。

 

コメント

タイトルとURLをコピーしました