Pythonの基礎#16 変数のリストから任意の要素を削除する方法
2020
8/02
この記事は,変数に入れたリストに格納されている複数の要素から任意の要素を削除する方法を学んだ備忘録です。
Python関連の記事リンク
Python学習にオススメ
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 変数のリストから特定要素を取り出すインデックス番号の使い方を覚えよう
Python関連の記事リンク \過去記事リンクやで/ その他のPython記事一覧はコチラ /タップすると記事一覧ページが開くで☆\ Python学習にオススメ Progate -楽しく学べ...
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:UserskeisyukeDocumentspython_prgsample.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()は,該当する要素のうち,インデックス番号の若い要素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 変数のリストに任意の要素を入替・追加する方法
Python関連の記事リンク \過去記事リンクやで/ その他のPython記事一覧はコチラ /タップすると記事一覧ページが開くで☆\ Python学習にオススメ Progate -楽しく学べ...
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:UserskeisyukeDocumentspython_prgsample.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 無料 posted withアプリーチ
今回の記事はここまでや☆
最後まで読んでくださってホンマおおきにっ!!お時間を使って読んでくださったことに心から感謝申し上げます!
けいしゅけ
この記事の感想をコメント していただけるとメッチャうれしいです!!
ご意見&ご質問も遠慮なく書いてください☆皆さんとの対話を楽しみにしています☆
下のボタンを押すとコメント記入欄へジャンプできますよ~!!
タコちゅけ
ウチのけいしゅけ はSNSもやってまちゅ!良ければフォローしてやってくださいでしゅ💛
この記事が気に入ったら いいね または フォローしてね!
記事の感想など,ひとこと頂けますか?