MENU
アーカイブ
お知らせ内容をここに入力してください。ボタン

Pythonの基礎#16 変数のリストから任意の要素を削除する方法

この記事は,変数に入れたリストに格納されている複数の要素から任意の要素を削除する方法を学んだ備忘録です。

Python関連の記事リンク

\過去記事リンクやで/

その他のPython記事一覧はコチラ

/タップすると記事一覧ページが開くで☆\

Python学習にオススメ

Progate -楽しく学べるプログラミング学習アプリ

Progate -楽しく学べるプログラミング学習アプリ

Progate無料posted withアプリーチ


まいど!2020年6月からPythonの勉強をはじめた けいしゅけ(@keisyukeblog)です☆

3記事前から1変数に多数のデータを入れ込むリストについて書いています。前回はリスト中の特定要素を入替・追加する方法を書きました。

今回は,次の疑問に対するアンサー記事を書こうと思います。

リスト中で任意の要素を削除する方法が知りたい!

けいしゅけ

・・・うん,入替・追加ときたら削除やわな。

タコちゅけ

・・・でちゅね。

そんなわけで,この記事ではリスト中の任意要素を削除する方法を勉強していこうと思います。

こんなコードで学べるよ!

isono_members = ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', '花沢さん']
print(isono_members)
# ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', '花沢さん']
isono_members.pop(8)
print(isono_members)
# ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ']
isono_members.pop(7)
print(isono_members)
# ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ']

離脱メンバーの名前を表示させたい場合は次のようにコードを書くといいかも!

isono_members = ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', '花沢さん']
print(isono_members)
# ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', '花沢さん']

print(isono_members.pop(8))
# 花沢さん

print(isono_members)
# ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ']

print(isono_members.pop(7))
# タマ

print(isono_members)
# ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ']

もしPythonにご興味があるのであれば,このブログ記事が何かしら参考になればと思います☆また,Twitterでもいいので,なにかコメント等あれば宜しくお願い致します!

目次

Pythonでリストから要素を削除する方法

到達目標

変数名.pop() で指定インデックス番号の要素を削除でき,変数名.remove(‘文字列’) で指定文字列を消去,
変数名.clear() で要素をすべて消すことができる!
これらを使いこなそう☆

けいしゅけ

タコちゅけ,これを目標に進んでいこう!

もはや,キミなら想像できるやんね?

タコちゅけ

…。

けいしゅけ

なんか言えや?

リストの要素すべてを削除するにはどうしたら良いですか?

変数名.clear() を使うことですべてのリスト要素を消すことができます

リスト要素全削除する clear() メソッドの解説

まず,リスト要素全てを消し去る関数を先に解説していきます。リスト要素をすべて消すには関数(厳密にはメソッドと言います)のclear()を利用することで実行可能です。リストのメソッドclear()で、すべての要素が削除され、空のリストになる。

isono_members = ['海平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', '花沢さん']
print(isono_members)
['海平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', '花沢さん']
#リスト要素を全削除する
isono_members = ['海平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', '花沢さん']
isono_members.clear()
print(isono_members)
[]
けいしゅけ

バルスっ!!

タコちゅけ

バルちゅッ!!

……。ということで,clear() を利用することでリスト要素全てが消えたことが確認できたと思います。

指定した位置の要素を削除したい場合はどうしたら良いですか?

変数名.pop(インデックス番号) と記述することで特定要素を削除できます

リストから任意の要素を削除する pop() メソッドの解説

先ほどのclear()と同じく,リストのメソッドであるpop()を用いることで、指定した位置の要素を削除することが可能です。

ここでポイントになるのがインデックス番号です。変数名.pop(インデックス番号)と記述する必要があるので,インデックス番号ってなんやねん?という方は以下のページを読んでみてください。

変数のリストから特定要素を取り出すインデックス番号の使い方を覚えようPythonの基礎#14 変数のリストから特定要素を取り出すインデックス番号の使い方を覚えよう

isono_membersという変数の中には磯野家の皆さんが要素として格納されています。ここに,花沢さんが乱入してきました。この押しかけてきた花沢さんを何とかカツオくんが家に帰したとしましょう(花沢さんごめんなさいッ!)。

さらにその後,タマがどこかへ家出してしまったと仮定してコードを書いてみました。

#磯野家に花沢さんが加入した状態
isono_members = ['海平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', '花沢さん']
print(isono_members)
#カツオ君が花沢さんをお家へ送り届け,タマが家出をしたとします。
#花沢さんをpop()を使ってリストから削除する
isono_members.pop(8)
print(isono_members)
#タマが家出をしたとして,pop()を使ってリストから削除する
isono_members.pop(7)
print(isono_members)
['海平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', '花沢さん']
['海平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ']
['海平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ']

離脱メンバーの名前を表示させたい場合は次のようにコードを書くといいかも!

#isono_membersを表示する
isono_members = ['波平','フネ','マスオ','サザエ','カツオ','ワカメ','タラ','タマ','花沢さん']
print(isono_members)

#花沢さんをコンソールに表示させる(削除対象確認)
print(isono_members[8])
#花沢さんをpop()を使ってリストから削除する
isono_members.pop(8)
#isono_membersを表示する
print(isono_members)

#タマをコンソールに表示させる(削除対象確認)
print(isono_members[7])
#タマをpop()を使ってリストから削除する
isono_members.pop(7)
#isono_membersを表示する
print(isono_members)
print(isono_members)
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', '花沢さん']
花沢さん
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ']
タマ
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ']

次に,しばらくマスオさんが単身赴任で長期出張してしまったとした場合,磯野家メンバーはどうなるか?

負の値を使って末尾(最後)からの位置を指定してリストから除外してみましょう。

#isono_membersを表示する
isono_members = ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ']
print(isono_members)

#マスオさんをインデックス番号で指定して表示させる
print(isono_members[-5])
#マスオさんをインデックス番号で指定して削除
isono_members.pop(-5)

#isono_membersを表示する
print(isono_members)
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ']
マスオ
['波平', 'フネ', 'サザエ', 'カツオ', 'ワカメ', 'タラ']

pop()のカッコ内にインデックス番号を書かない場合は、末尾(最後)の要素を削除される

今回は,タラちゃんがイクラちゃん宅にお泊りに行ったことにしてみよう。

#isono_membersを表示する
isono_members = ['波平', 'フネ', 'サザエ', 'カツオ', 'ワカメ', 'タラ']
print(isono_members)
#メソッド pop() で削除しつつ,削除した要素を表示させる
print(isono_members.pop())
#isono_members内の最終的な要素を確認
print(isono_members)
['波平', 'フネ', 'サザエ', 'カツオ', 'ワカメ', 'タラ']
タラ
['波平', 'フネ', 'サザエ', 'カツオ', 'ワカメ']

存在しない位置を指定するとエラーになる

#isono_membersからインデックス番号6要素を削除試行する
isono_members = ['波平', 'フネ', 'サザエ', 'カツオ', 'ワカメ']
print(isono_members.pop(6))
Traceback (most recent call last):
  File "c:\Users\keisyuke\Documents\python_prg\sample.py", line 2, in <module>
    print(isono_members.pop(6))
IndexError: pop index out of range

指定した値と同じ要素を削除する方法はありますか?

remove() というメソッドを使うことで可能です

リストから任意の要素を削除する remove() メソッドの解説

リストから要素を削除するのに便利な技としてもう一つ学びました。それがremove()です。

これによって,remove(‘けいしゅけ’)と記述した場合,リスト内に’けいしゅけ’という要素があった場合に削除することが可能になります。ただし,おなじ要素がリストに2つ以上ある場合,最初に出てくる要素のみが削除される仕組みになっているので注意が必要!

使い方は,リスト名.remove(要素を指定)とコードを打てばOK。

#isono_membersを表示する
isono_members = ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ','花沢さん', 'タマ','花沢さん']
print(isono_members)

#isono_membersの中に'花沢さん'と一致するものがあれば1つ取り除く
isono_members.remove('花沢さん')
print(isono_members)
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', '花沢さん', 'タマ', '花沢さん']
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', '花沢さん']

リストのメソッドremove() のポイント:2つ以上同じ要素があるときは1つだけ削除される

リストのメソッドremove() のポイント:2つ以上同じ要素があるときは1つだけ削除される
ポイント:remove()は,該当する要素のうち,インデックス番号の若い要素1つだけを削除する
けいしゅけ

remove() メソッドで大事なポイントは,指定した値(文字列)に一致する要素がリストに複数含まれる場合、最初の一つだけが削除されるってことや。

remove() メソッドの使いどころは?

仮想例:
タマがいつの間にか増えて磯野家に帰ってきました。
波平父さんが「2匹も同じ名前のネコが飼えるか!名前を変えなさいっ!!」とお怒りです。2匹目のタマはチーという名前に解明しようと思うのですが…。

isono_members = ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', 'タマ']
print(isono_members)

#タマを1匹リストから削除する
isono_members.remove('タマ')
print(isono_members)

#チーという名前で1匹リストに加えることにする
isono_members.append('チー')
print(isono_members)
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', 'タマ']
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ']
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', 'チー']

とんでもなく強引かつ,非効率なやり方ですが,ひとまず無事にネコたちの名前はタマとチーになりました。ただし,単純に入れ替えれば位だけなので,1つ前の記事にならって要素を入れ替えましょう。

変数のリストに任意の要素を入替・追加する方法Pythonの基礎#15 変数のリストに任意の要素を入替・追加する方法
isono_members = ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', 'タマ']
print(isono_members)

#タマをチーに入れ替える
isono_members[-1]='チー'
print(isono_members)
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', 'タマ']
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', 'チー']

remove() も pop() と同様,存在しない値を指定するとエラーが表示される

ちなみに,remove() も,pop同様で,存在しない値を指定するとエラーになります。

isono_members = ['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', 'タマ']
print(isono_members)

#リストにない要素を指定してremove()を動かしてみる
isono_members.remove('ドラネコ')
print(isono_members)
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ', 'タマ']
Traceback (most recent call last):

  File "c:\Users\keisyuke\Documents\python_prg\sample.py", line 5, in <module>
    isono_members.remove('ドラネコ')
ValueError: list.remove(x): x not in list

次のようなメッセージが出ていればエラーの再現はバッチリです。

最後にVSCodeで動作確認(要素の入替・追加)

VSCodeにコードを記入して動かしてみよう!

#磯野家 入場
isono_members = ['波平','フネ','マスオ','サザエ','カツオ','ワカメ','タラ','タマ']
print(isono_members)

#磯野家 離散
isono_members.clear()
print(isono_members)

#磯野家 再集結 *変数.extend([リスト])で変数にリストを入れ込むことができる
isono_members.extend(['波平','フネ','マスオ','サザエ','カツオ','ワカメ','タラ','タマ'])
print(isono_members)

#タラちゃん,イクラちゃん宅へお泊りに行く
isono_members.pop(6)
print(isono_members)

#サザエ,ついでにイクラちゃん宅へ行く
isono_members.remove('サザエ')
print(isono_members)
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ']
[]
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タラ', 'タマ']
['波平', 'フネ', 'マスオ', 'サザエ', 'カツオ', 'ワカメ', 'タマ']
['波平', 'フネ', 'マスオ', 'カツオ', 'ワカメ', 'タマ']
タコちゅけ

できたでちゅ!!

けいしゅけ

ヨッシャ!!バッチリやなッ!!

Pythonの勉強はまだまだ続くでっ!!

さて,リストから要素を削除する方法を勉強してみました。一緒にやってみた方は再現できたでしょうか?

もしも不明点などがあれば,いつでも,Twitterで質問していただくか,コメント欄に記入してくださいね☆

次回は,ようやく別のことをやっていこうと思います!リスト要素をイジるのはこれにて終了!!

たこちゅけ

せんせーぃ。コーヒーできましたよ~☕

けいしゅけ

ありがと☆

肩が凝ったわい。

疲れたし,コーヒー飲もかぁ。ゴールドブレンドぉ~🎵

おしまい

\記事の感想や質問を大募集☆/

けいしゅけにコメントをくれてやるッ!

/タップするとコメント欄へ飛べるで☆\


Python学習にオススメ

Progate -楽しく学べるプログラミング学習アプリ

Progate -楽しく学べるプログラミング学習アプリ

Progate無料posted withアプリーチ

\過去記事リンクやで/

その他のPython記事一覧はコチラ

/タップすると記事一覧ページが開くで☆\


今回の記事はここまでや☆

最後まで読んでくださってホンマおおきにっ!!お時間を使って読んでくださったことに心から感謝申し上げます!

\最新記事をメールでお知らせするで/

3,846人の購読者に加わりましょう

けいしゅけ

この記事の感想をコメントしていただけるとメッチャうれしいです!!

ご意見&ご質問も遠慮なく書いてください☆皆さんとの対話を楽しみにしています☆

下のボタンを押すとコメント記入欄へジャンプできますよ~!!

タコちゅけ

ウチのけいしゅけはSNSもやってまちゅ!良ければフォローしてやってくださいでしゅ💛

Twitterでけいしゅけをフォロー

けいしゅけFacebookにいいね!

コメント

コメントする

目次
閉じる