Re:ゼロから始める文系プログラマ

文系プログラマーがブログを書いてみた。

【Python・データ構造】~リストの操作~

f:id:ShotaNukumizu_1000:20210405111435p:plain

おはようございます!Shotaです。今日もPythonの紹介をしていきたいと思います!

今日は昨日に引き続き「list型」のデータについて紹介していきます。昨日はPythonで汎用性の高い「list型」の構造そのものについて触れていきましたが、今日は「list型」のデータを操作する方法について共有したいと思います!

 

【目次】

 

リスト操作のメソッド

 リストは、オブジェクトと呼ばれるものの一つです。オブジェクトは「色んな値や処理、関数を一つにまとめて扱えるようにした特別な値」の総称です。

オブジェクトには、「メソッド」と呼ばれる処理が組み込まれています。このメソッドを呼び出すことでオブジェクトを操作できます。メソッドは関数と同じく、「特定の処理のための命令」です。

 

append――リストの最後尾に値を追加する

 リストどうしなら、「+」でリストを追加することができます。一般的には、リストに要素を足していくときにはappendメソッドを利用します。

 

(リスト名).append(値)

 

このように表記して使います。

メソッドは、リストの後にドットを付けて記述します。メソッド名の後には必ず()を付けて、この中に追加する値を用意します。このようにメソッドに与えるデータのことを「引数」と呼びます。

試しに、以下のコードを書いてみて実行してみましょう。

 

f:id:ShotaNukumizu_1000:20210411100059p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411100136p:plain


「0」の後に、2つの値が追加されていることがわかります。これがappendの処理です。appendは、リストの最後に値を追加します。このメソッドは変数に代入していない状態でも使うことはできますが、変更を確認することはできません。

insert――リストの指定位置に値を追加する

リストの特定の位置に値を追加したいとき、insertメソッドが利用されます。

 

f:id:ShotaNukumizu_1000:20210411100544p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411100613p:plain

 

arr.insert(1, 1)というようにして値を挿入していきます。これは、「インデックス1の場所に1という値を挿入する」という処理をします。

この処理によって、挿入した値より右側にある値のインデックスが1ずれていきます。

remove――リストから値を削除する

すでに保管されている値を取り除くためには、「remove」メソッドを利用します。以下のように記述します。

 

リスト.remove(値)

 

removeメソッドは引数を一つ持っています。()の部分に削除する値を指定して、値の要素を削除します。もし、同じ値が複数あった場合には一番最初のものだけを削除します。

 

f:id:ShotaNukumizu_1000:20210411101143p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411101207p:plain

 

値を()の中に書くことで、リストから不要な値を削除できます。

 

del――指定したオブジェクトを削除する

removeは値を指定して削除する一方で、delはインデックス番号を指定してそれに該当する値を削除します。

 

del リスト名[インデックス番号]

 

このように使います。del の後ろにインデックス番号を忘れないようにしておきましょう。そうしないと、リストそのものが削除されてしまいます。ただし、delはメソッドではないので他の文と同じように書かないことには十分に注意してください。

試しに以下のコードを書いて実行してみましょう。

 

f:id:ShotaNukumizu_1000:20210411101923p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411101828p:plain

 

del lst[1] とすると、lstのインデックス番号2を削除できます。del lstの場合、lstそのものを削除してしまいますので注意して下さい。

 

index――値がある場所を調べる

indexメソッドは、値の位置を調べる時に使用します。

 

リスト.index(値)

 

このように記述して使います。

 

pop――リストの最後の値を削除する

 popメソッドは、リストの最後の値を削除する時に使用します。

 

リスト.pop()

 

popは、()に何も値を用意しなくても処理します。言い換えれば、popを呼び出すだけで最後の値を取り出すことができます。

試しに、次のコードを書いてみましょう。

 

f:id:ShotaNukumizu_1000:20210411103131p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411103217p:plain

 

実行結果にはpopで削除された値が表示されます。これは、popが単に値を削除するだけではなく削除した値を返しているためです。

popで出力された値は変数に代入したり、関数の引数にしたりすることができます。

ここがdelとの大きな違いです。(delは値そのものを削除してしまいます。削除された値は出力されません)

 

clear――リストの中身をすべて削除する

clearメソッドでは、リストの中にある値を全て削除するのに使います。

 

リスト.clear()

 

このように使います。()の中には何も書く必要はありません。

 

f:id:ShotaNukumizu_1000:20210411103721p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411103756p:plain

reverse――リストの並びを反転させる

 リストは、インデックス番号により順番に値が並んでいます。これを逆順にするメソッドが「reverse」です。

 

リスト.reverse()

 

このように記述していきます。clearメソッドと同様に、引数は何も必要ありません。ただ呼び出すだけで順番が逆になります。

 

f:id:ShotaNukumizu_1000:20210411104144p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411104217p:plain

 

このように処理すると、最初にlstに代入されたリストの状態と要素が逆に並んでいることがわかっているでしょう。

sort――リストを並び替える

並べ替えはsortメソッドを呼び出して行います。これだけで、リストに保管されている値を並べ替えることができます。数値が保管されている場合は数の小さい順に、テキストなどの場合はアルファベット順に並べ替えます。

 

リスト.sort()

 

このように使います。これも引数は何も必要ありません。

試しに以下のコードを書いて実行してみましょう。

 

f:id:ShotaNukumizu_1000:20210411104759p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411104900p:plain

 

このようにして、sortメソッドを呼び出して無秩序に並んでいるリスト内のデータを並び替えることができます。

 

まとめ

【本日のまとめ】

  • オブジェクトには、メソッドと呼ばれる処理で様々な処理をしてくれる機能が備わっている
  • append:リストの最後に値を追加する
  • insert:リストの指定位置に値を追加する
  • remove:リストから値を削除する
  • del:指定したオブジェクトを削除する
  • index:値がある場所を調べる
  • pop:リストの最後の値を削除する
  • clear:リストの中身をすべて削除する
  • reverse:リストの並びを反転させる
  • sort:リストを並び替える

 

本ブログでは、こんな感じでPythonにまつわる情報や基本的な知識、Pythonの操作方法やニュースをたくさん紹介していきます。毎週日曜日に、普段とは趣向を変えて有名な自己啓発本・ビジネス書を要約・考察するブログを書いていきます。

この記事がいいと思った人はSNSにシェアしてくれると非常に嬉しいです!

明日はデータ構造の一つ「タプル」について詳しく説明していきます。

今日も最後まで読んでくださりありがとうございました!

 

【参考図書】

gihyo.jp