Ciao!みなさんこんにちは!このブログでは主に
(1)pythonデータ解析,
(2)DTM音楽作成,
(3)お料理,
(4)博士転職
の4つのトピックについて発信しています。
今回は「アラサーOLのためのpython入門講座」です!この講座では、プログラミング初心者アラサーOLのMi坊さんに、pythonを学習する上でのアドバイスを行います!「パソコンもプログラミングも初心者だけど、プログラミングができるようになりたい!」という方のためにstep-by-stepで解説していきます。
今日はList型変数(リスト)の要素を削除する方法を解説します。indexingで要素を一つだけ削除したり、slicingで複数の要素を削除することができます。実際に使う場面は多くはないですが、知っておくとList型変数への理解が深まります。
この記事を読めば、List型変数の要素を削除する方法を知ることができます。ぜひ最後までお付き合いください!
この記事はこんな人におすすめ
- 初心者だけどpythonを始めた!
- pythonの基本的な使い方を知りたい!
- 独学で学んだpythonの知識を整理したい!
Abstract | 要素の操作を覚えてList型に慣れよう
リストの要素の削除を覚えれば、前回までに扱った要素の更新・追加と合わせて一通りのList型変数の要素の操作を習得することができます。要素の操作を覚えることで、indexingやslicingといった番地指定をはじめ、List型変数の挙動を詳しく知ることができます。「リストの要素の削除」という処理をプログラミングの中で使う機会は多くはありませんが、リスト自体は頻繁に使いますし、リストの要素の操作はPythonプログラミングには不可欠の知識です。リストの要素の削除の学習を通してList型変数に詳しくなりましょう。
Method | リストの要素の削除方法
List型変数の要素を削除する方法を解説します。実際に手を動かしながら学んでいきましょう!Jupyter Notebookを立ち上げてコーディングしながら読み進めてください。練習問題の後にコーディング例も掲載しますので、やってみてどうしてもわからなければそれを見て進めてみてください。
準備 | python notebookの新規作成
まずはpython notebookを用意しましょう。いつものpython_practiceのディレクトリに「practice_list_delete」という名前のpython notebookを作成してください。ターミナルを立ち上げて~/python_practiceに移動、jupyter notebookを起動し、ブラウザから新規→Python3でpython notebookを開いて、ファイル→リネームでファイル名を決定します。
もしやり方がわからなければ、過去記事「python入門講座|pythonを使ってみよう2(Jupyter Notebookを使う方法)」などで詳しく解説しているので、これらを見ながらやってみてください。
python notebookを起動したら、適宜Markdownセルに説明書きを加えながら下記の説明に沿ってコードを書いて実行していきましょう。Markdownセルやコードセルなどの用語やこれらの使い方は過去記事「python入門講座|pythonを使ってみよう2(Jupyter Notebookを使う方法)」を参照してください。練習問題の後にpython notebookの例を掲載します。もし書き方がわからなければそちらを見てください。
Indexingで要素を一つ削除する方法
まずは要素を一つだけ削除する方法です。Indexingを使います。
del 変数[index]
のように、delで対象の要素を削除します。要素を削除すると、後ろの要素が一つ手前に移動します。delは変数を削除するコマンドです(詳しくは後述します)。
例を見てみましょう。以下を実行してみてください。
# define a list variable
var_list = [1,2,3,4,5]
# delete 0th element
del var_list[0]
# print
print(var_list) # [2, 3, 4, 5]
0番目の要素の「1」が削除されます。これにより、もともと1番目の要素だった「2」が前方に移動してきます。要素の削除後は、var_listは[2, 3, 4, 5]となります。0番目の要素が「2」に変わります。以下を実行して確かめてみましょう。
# print 0th
print(var_list[0]) # 2
最初ではなく、中間にある要素の削除もやってみましょう。以下を実行してみてください。
# define a list variable
var_list = [1,2,3,4,5]
# delete 2nd element
del var_list[2]
# print
print(var_list) # [1, 2, 4, 5]
今度は2番目の要素である「3」を削除しました。削除後のリストは[1, 2, 4, 5]となります。
Slicingで複数要素を削除する方法
次に複数の要素を同時に削除する方法です。Slicingを使います。Slicingについて、詳しくは過去記事「python入門講座 | List型の使い方2(リストから値を取り出すインデックスとスライス)」をご覧ください。
# define a list variable
var_list = [1,2,3,4,5]
# delete 1st to 3rd element
del var_list[1:4]
# print
print(var_list) # [1, 5]
var_list[1:4]とslicingすることで、1番目から3番目までの3つの要素を指定でできます。これらをdelで削除することで、var_listの中身はもともとの0番目と4番目の要素である[1, 5]となります。
参考 | delコマンドの機能
delコマンドのもともとの機能について解説します。delというコマンドは、python上で定義した変数を削除するときに使います。Pythonでは、変数を定義するとメモリ上に領域が確保され、その領域がその変数に割り当てられます。delコマンドはメモリの確保を止めて(「メモリの開放」といいます)、その変数自体が存在しなかったことになります。
実際のプログラミングの場面では、これ以上使わない変数が大きなメモリを消費している場合にdelを使って削除します。こうすることで利用できるメモリを増やすことができ、処理速度や処理速度を向上させることができます。このように、delを使うのは「変数そのもの」が不要になった場合が多いので、List型変数の要素だけを削除する機会は少ないです。
一度delした変数を呼び出そうとすると「定義されていません」というエラーになります。以下の例をやってみましょう。
# define a list variable
var_list = [1,2,3,4,5]
# delete the variable
del var_list
# print
print(var_list) # error
var_list全体がdelで消去されているので、print()関数で呼び出そうとすると「NameError: name ‘var_list’ is not defined」というエラーが出ます。
Result | 練習問題
最後に練習問題です。以下の処理を行うコードを書いてみてください。
- 変数var_listにApple, Mac, iPad, iPhone, Watchの5つの文字列をlistとして代入してください。
0番目の要素がMacになるよう、var_listからAppleを削除してください。
print()関数でvar_listの内容を出力してください。 - 変数var_listからiPhone以降の要素を削除してください。
print()関数でvar_listの内容を出力してください。
練習問題の回答例
できたら回答例を確認しましょう!下の画面をスクロールすると回答例が見られます!参考にしてみてください。また、今回の記事で出てきた他のコードも載っているので参考にしてください!
練習問題おつかれさまでした!
今日はここまでです。Python Notebookを終了しておきましょう。もしPython Notebookを終了方法がわからなければ過去記事「python入門講座|pythonを使ってみよう2(Jupyter Notebookを使う方法)」の「Python Notebookの起動・終了方法」の章を参照してください!
Conclusion | まとめ
最後までご覧いただきありがとうございます!
今回はlist型変数の要素を削除する方法解説しました。インデックスやスライスで指定の要素を削除することができます。頻繁に使うテクニックではありませんが、Pythonの配列型変数についての理解が深まるので覚えておきましょう!
以上「python入門講座 | List型の使い方4(要素を削除する方法)」でした!
またお会いしましょう!Ciao!
References | 参考
以下の教科書を参考にして進めています!より詳しく学びたい方は購入して読んでみてください!
Pythonの参考教科書
- 現場で使える! Python深層学習入門 Pythonの基本から深層学習の実践手法まで (AI & TECHNOLOGY)
深層学習をpythonで学ぶための教科書ですが、最初の60ページぐらいがpythonの基礎的な解説に割かれています。簡潔にまとまっていてわかりやすいです。