No Result
View All Result
WebHack
  • お知らせ
  • IoT/ガジェット
  • Webサービス
  • 通信技術
  • プログラミング
  • 電気自動車
  • お知らせ
  • IoT/ガジェット
  • Webサービス
  • 通信技術
  • プログラミング
  • 電気自動車
No Result
View All Result
WebHack
No Result
View All Result
Home プログラミング

【Python初心者向け】リスト(list)の使い方を徹底解説!〜参照・更新・追加・削除編〜

fukii by fukii
2020年2月22日
in プログラミング
0
【Python初心者向け】辞書(dict)の使い方を徹底解説!
0
SHARES
157
VIEWS

前回の初期化編では、リストをどう作るのかにフォーカスを当てて、リストの初期化方法を網羅的に解説しました。

WebHack
【Python初心者向け】リスト(list)の使い方を徹底解説!〜初期化編〜
https://webhack.jp/programming/%e3%80%90python%e5%88%9d%e5%bf%83%e8%80%85%e5%90%91%e3%81%91%e3%80%91%e3%83%aa%e3%82%b9%e3%83%88list%e3%81%ae%e4%bd%bf%e3%81%84%e6%96%b9%e3%82%92%e5%be%b9%e5%ba%95%e8%a7%a3%e8%aa%ac%ef%bc%81/
リスト(list)は「複数の値を1つのまとまりにして扱えるようにする機能」のことです。複数の値をまとめて扱う機能は他にもありますが(タプルや辞書など)、その中でもリストが最も基本的な方法と言えます。リストについては複数回に渡って解説しますが、ここでは「初...

リストを初期化した後の、要素へのアクセスや変更方法について見ていきましょう。

ここでは次の疑問を解決します。

  • リスト内の要素にどうやってアクセスするの?
  • リストの要素を変更したい
  • 指定した箇所に要素を追加したい
  • リストの要素を削除したい

 

 

WebHack
【初心者向け!】Pythonとは?特徴と基本的な構文
https://webhack.jp/programming/%e3%80%90%e5%88%9d%e5%bf%83%e8%80%85%e5%90%91%e3%81%91%ef%bc%81%e3%80%91python%e3%81%a8%e3%81%af%ef%bc%9f%e7%89%b9%e5%be%b4%e3%81%a8%e5%9f%ba%e6%9c%ac%e7%9a%84%e3%81%aa%e6%a7%8b%e6%96%87/?preview_id=6661&preview_nonce=4d61e9d654&post_format=standard&_thumbnail_id=6680&preview=true
プログラミング言語に興味があれば、Pythonと言う言葉は一度は聞いたことがあるのではないでしょうか?Pythonは近年最も勢いのあるプログラミング言語です。Githubという有名な会社の年次報告書「The State of the Octoverse」によると、PythonはjavaやPHP、C++、C#...

 

 

目次

  • 1 リスト(list)の参照・更新
    • 1.1 要素の参照
    • 1.2 多次元リストの要素へのアクセス
    • 1.3 for..inを使って全要素にアクセスする
    • 1.4 要素の更新
    • 1.5 Tips.リストのインデックスエラーを回避するには?
  • 2 リスト(list)に要素を追加する
    • 2.1 append()を使って要素を追加する
    • 2.2 insert()を使って要素を指定箇所に挿入する
  • 3 リスト(list)の要素を削除する
    • 3.1 pop()を使って要素を抜き出す
    • 3.2 remove()を使って値から要素を削除する

リスト(list)の参照・更新

初めに初期化済みのリストの要素への参照・更新方法を見ていきましょう。

要素の参照

リストの要素を参照するためには「インデックス番号(オフセット)」を使います。

インデックス番号とは、作成されたリストの要素1つ1つに自動的に付与される番号のことで、左から順に0, 1, 2, 3…と「0から始まる」連番になっているのが特徴です。

インデックス番号を使ってリストの要素を参照する書式は次の通りです。

書式list[インデックス番号]

では実際にリストの要素にアクセスしてみましょう。

                          mixes = [3, "こんにちは", True, 0.314]hello = mixes[1]print(hello)
                        
結果こんにちは

リストの2番目の要素にアクセスし、結果をhello変数に入れて表示しています。

インデックス番号は左から順に0, 1, 2…と割り振られているので、2番目の要素のインデックス番号は「1」です。

ちなみに、実はインデックス番号は末尾からも割り振られており、-1, -2, -3…と「マイナスの連番」が設定されています。

                          mixes = [3, "こんにちは", True, 0.314]boolean = mixes[-2]print(boolean)
                        
結果True

-2は「後ろから2番目の要素」を指しているので「True」を参照しました。

多次元リストの要素へのアクセス

次に多次元リストの要素へのアクセス方法を見ていきましょう。

多次元リストの場合はインデックス番号を複数指定することで、ネストした要素を参照できます。

                          numbers_2 = [     [1, 2, 3]    ,[4, 5, 6] #←このリストにアクセス    ,[7, 8, 9]]numbers_3 = [    [         [1, 2]        ,[3, 4]        ,[5, 6]    ]    ,[         [7, 8]        ,[9, 10]        ,[11, 12] #←このリストにアクセス    ]]print(numbers_2[1][2]) #2番目のリストの3番目の要素を参照print(numbers_3[1][2][1]) #2番目のリストの3番目のリストの2番目の要素を参照
                        
結果612

for..inを使って全要素にアクセスする

次はfor..inを使ってリスト内の全ての要素にアクセスしてみましょう。

リストを使ったfor..inの書式は次の通りです。

書式for 要素名 in リスト:

では実際にfor..inを使ってリストの全要素を参照してみましょう。

                          mixes = [3, "こんにちは", True, 0.314]for mix in mixes:print(mix)
                        
結果3こんにちはTrue0.314

また、多次元リストの場合はfor..inをネストすることで全要素を参照できます。

                          numbers = [     [1, 2, 3]    ,[4, 5, 6]    ,[7, 8, 9]]for number_line in numbers:    for number in number_line:        print(number, end = ", ")
                        
結果1, 2, 3, 4, 5, 6, 7, 8, 9,

要素の更新

要素の更新は参照と同じくインデックス番号を使えば簡単にできます。

書式list[インデックス番号] = 値

指定したインデックス番号の要素に、変数に値を入れるのと同じようにするだけです。

                          mixes = [3, "こんにちは", True, 0.314]print(mixes)mixes[2] = Falseprint(mixes)
                        
結果[3, 'こんにちは', True, 0.314][3, 'こんにちは', False, 0.314]

Tips.リストのインデックスエラーを回避するには?

リストを使うとほぼ必ずといって良いほど遭遇するエラーが「IndexError」です。

IndexErrorはリストに存在しないインデックス番号で要素を参照しようとしたときに起こるエラーです。

例えば3つの要素を持ったリストに「3」のインデックス番号を指定した場合、4番目の要素が存在しないのでIndexErrorになります。

                          numbers = ["a", "b", "c"]print(numbers[3])
                        
結果IndexError: list index out of range

IndexErrorを回避するには、リストの長さをlen()で調べるのが効果的。len()は引数にリストを渡すことで、そのリストの長さを返してくれる関数です。

これを使うと先ほどの例を次のように直すことができます。

                          numbers = ["a", "b", "c"]idx = 3if (idx <= len(numbers) - 1):    print(numbers[idx])else:    print(numbers[len(numbers) - 1])
                        
結果c

上のプログラムは「idxがリストの長さ – 1以下の場合はそのままリストを参照し、大きければリストの最後の要素を参照」しています。

リストの長さ – 1という計算が必要なのは、len()で取得できる長さは0からではなく1から数えるので、インデックス番号と比較演算する場合は – 1して合わせる必要があるからです。

インデックス番号を指定する[]内で計算式を記述することもできます。最後の行は「len()で取得した長さ – 1」で、numbersリストの最後の要素のインデックス番号を計算しています。

リスト(list)に要素を追加する

ここからはリストに要素を追加する方法を見ていきましょう。

要素を追加する方法は「append()を使ってリストの末尾に要素を追加する」パターンと「insert()で指定箇所に要素を挿入する」方法があります。

append()を使って要素を追加する

まずはappend()で要素を追加する方法を見ていましょう。

append()はリストの末尾に要素を追加するメソッドで、引数も一つしかなくシンプルに扱えます。

書式リスト.append(要素)

では要素を追加してみましょう。追加する要素はリストの要素として扱えるものなら何を入れても問題ありません。

                          list = []list.append(10)list.append(True)list.append(["a", "b"])print(list)
                        
結果[10, True, ['a', 'b']]

insert()を使って要素を指定箇所に挿入する

次にinsert()の使い方を見ていきましょう。

insert()には引数が二つあり、インデックス番号で挿入する箇所を指定することができます。

書式リスト.insert(挿入位置, 値)

ではinsert()を使ってみましょう。指定した挿入位置に第二引数の値が入り、後に続く要素は一つずつ後ろにずれます。

                          list = ["a", "b", "d", "e", "f"]list.insert(2, "c")print(list)
                        
結果['a', 'b', 'c', 'd', 'e', 'f']

挿入位置に2を指定したので、インデックス番号2の場所にcが挿入されました。

d, e, fは一つずつ後ろにずれているのがわかります。

リスト(list)の要素を削除する

最後にリストの要素を削除する方法を見ていきましょう。

リストの要素を削除する方法は、要素を抜き出すpop()を使うパターンと、特定の値を指定して削除するremove()を使うパターンがあります。

pop()を使って要素を抜き出す

まずはpop()の使い方を見ていきましょう。pop()はリスト内の要素を抜き出します。

削除ではなく、「要素を抜き出す」と書いているのは、pop()は末尾にある要素を削除した後、その要素を返却するメソッドだからです。

実際にpop()を使って見ましょう。書式は次の通りです。

書式リスト.pop(抜き出す位置)

抜き出す位置にはインデックス番号を指定します。この引数は省略することもでき、その場合は末尾の要素を抜き出します。

                          list = ["a", "b", "d", "e", "f"]alpha_f = list.pop()alpha_b = list.pop(1)print(alpha_f)print(alpha_b)print(list)
                        
結果fb['a', 'd', 'e']

最初のpop()は引数を指定していないので末尾のfを取得し、2番目のpop()は「1」を指定しているので、2番目の要素であるbを取得しました。

最後にリストを出力しています。pop()で抜き出したbとfが無くなって、要素が3つだけになっているのが分かります。

pop()を使う上での注意点として、空のリストに対してpop()した場合「indexError」となることです。

これを回避するためには、リストに要素が入っていることを確認してからpop()する必要があります。

そのために使えるのがifです。次のコードのように「if リスト」とすることで、空のリストの場合はfalseを返してくれます。

                          list = []if list:list.pop()
                        

remove()を使って値から要素を削除する

次はremove()を使った方法を見ていきましょう。remove()は指定した値と同じ値の要素を削除します。

また複数同じ要素がある場合は、最初に見つけた要素が削除されます。

書式リスト.remove(削除する値)

気をつける点は、削除する値がリストに無かった場合エラーになってしまうことです。

remove()を使うときは、確実にリスト内に削除する要素が入っている場合を除き、in演算子を使って「リスト内に要素が入っているか確認してから使う」ようにすると安心です。

 

                          list = ["abc", "def", "ghi"]target = "def"if target in list:list.remove(target)print(list)
                        
結果['abc', 'ghi']
Tags: append insert list pop Python remove リスト
Previous Post

【プロの映像を簡単に制作】DJIのRONIN-SCを徹底レビュー

Next Post

プログラミングスキルを身につけて副業に活かす、Progateの紹介

fukii

fukii

Next Post
プログラミングスキルを身につけて副業に活かす、Progateの紹介

プログラミングスキルを身につけて副業に活かす、Progateの紹介

コメントを残す コメントをキャンセル

人気記事

  • 【業界最軽量】VLOGに最適なスマートフォン用ジンバル「VLOG pocket」が便利すぎる!

    【業界最軽量】VLOGに最適なスマートフォン用ジンバル「VLOG pocket」が便利すぎる!

    0 shares
  • 【Netflix】英語と日本語の字幕を同時表示できるChrome拡張機能を紹介!【英語学習】

    0 shares
  • 【144Hz&WQHD&1ms対応】最強のゲーミングモニターおすすめ5選を紹介!

    0 shares
  • 【PS5】発表されたゲームタイトル28個まとめ!GTA5は無料配布も!

    0 shares
  • 【超簡単】Gmailが相手に開封されたかを通知で確認する方法

    0 shares

カテゴリー

  • IoT/ガジェット (210)
  • Webサービス (77)
  • お知らせ (4)
  • プログラミング (44)
  • モバイルアプリ (41)
  • 自動運転 (3)
  • 通信技術 (18)
  • 電気自動車 (4)

タグ

5G AI Amazon ANKER Apple Apple Watch Bluetooth Chrome Chrome拡張機能 DearMob iPhoneマネージャー DJI ELECOM GoodNotes5 Google GoPro html IoT iPad iPad OS iPhone Java Javascript kickstarter list NumPy Progate Python Twitter VideoProc Wi-Fi Wi-Fiルーター YouTube アクションカメラ オススメ グーグル スマートフォン ディープラーニング プログラミング プログラミング言語 リスト リモートワーク ワイヤレス充電器 在宅ワーク 新型コロナウイルス 防災アイテム

WebHackはインターネットサービスやガジェットなどITトレンド情報をお伝えしていきます。

Category

  • IoT/ガジェット
  • Webサービス
  • お知らせ
  • プログラミング
  • モバイルアプリ
  • 自動運転
  • 通信技術
  • 電気自動車

Follow Us

  • プライバシーポリシー
  • お問い合わせ

Copyright © 2012 - 2017, JNews - Premium WordPress news & magazine Jegtheme .

No Result
View All Result
  • お知らせ
  • IoT/ガジェット
  • Webサービス
  • 通信技術
  • プログラミング
  • 電気自動車

Copyright © 2012 - 2017, JNews - Premium WordPress news & magazine Jegtheme .