Pythonプログラミング初心者に向けて、2重のリストの作成方法と操作方法について解説します。
前回はリストのコピー方法を学びました!
今回はどんなことを勉強しましょうか?
ここでは2重のリストの作成方法とその利用方法を学んでいきます!
前回までのリストの操作を用いる場面も多いので不安な方は復習しておきましょう!
Pythonのリストは、複数の要素を保持するための便利なデータ構造です。
リストの要素として、他のリストを含む2重のリスト(リストの中にリスト)を作成することもできます。
この記事では、Pythonの2重リストの作成方法と、インデックス指定による要素の取り出しなどの操作方法について解説します。
初心者の方でもわかりやすく、具体的なプログラムの例を交えて解説します。
2重リストの作成方法
2重のリストつまり、リストの中にリストを作成するには以下のように書きます。
#リストnum_listsを作成
num_lists = [[10, 20, 30], [40, 50, 60], [70, 80, 90]]
#リストnum_listsを出力
print(num_lists)
# 実行結果
# [[10, 20, 30], [40, 50, 60], [70, 80, 90]]
この例では、num_list
sという2重リストを作成しています。
3つの要素を持つリスト[10, 20, 30] [40, 50, 60] [70, 80, 90]が内側のリストとして含まれており、全部で3つのリストが1つのリストの中に2重になって格納されています。
なるほど!
リストの中にリストを入れることができるんですね!
そうなんです!
3つのリストがリストの中に入っているイメージがつかめましたか?
では、次にこの2重のリストから格納している値を取り出していきます!
2重リストの要素の取り出し
2重リスト内の要素を取り出すには、通常のリストと同様にインデックス指定を使用します。
インデックス番号の指定を2回行うことで中の要素を1つ1つ取り出せます。
以下の例を見てみましょう。
#リストnum_listsを作成
num_lists = [[10, 20, 30], [40, 50, 60], [70, 80, 90]]
#リストnum_listsの0番目の要素(リスト)を出力
print(num_lists[0])
# 実行結果
# [10, 20, 30]
#リストnum_listsの0番目の要素(リスト)の中にある
#インデックス番号2番目の要素を出力
print(num_lists[0][2])
# 実行結果
# 30
この例では、さきほどと同様にnum_lists
という2重リストを作成しました。
次に、num_lists[0]
と指定することで、0番目のリスト([10, 20, 30])を取り出していることがわかります。
続けて、num_lists[0][2]
と指定することで、0番目のリスト([10, 20, 30])の中の2番目の値(30)を取り出すことができました。
このようにして、リストのインデックス指定を2つ並べることで、リストの中のリストの要素も取り出せます!
インデックス指定を繰り返していくと中の要素を取り出していくことができるんですね!
でも2重のインデックス指定の書き方はまだまだ違和感がありますね..
そうですよね~!
上のプログラムでprint(num_lists[0][2])
のインデックス番号を変えて出力してみてください!
感覚をつかんでいくことができると思います!
ぜひチャレンジしてみてください!
2重リストの要素の変更
続いてさきほどの2重リストの要素の取り出しの応用として、インデックス指定した要素を変更してみたいと思います!
2重リスト内の要素を変更する場合は、インデックス指定を2回用いて要素にアクセスし、値を代入することで実現できます。
以下の例を見てみましょう。
num_lists = [[15, 25, 35], [45, 55, 65], [75, 85, 95]]
# インデックス番号[1][1]の要素を変更
num_lists[1][1] = "ごまこ"
print(num_lists)
# 実行結果
# [[15, 25, 35], [45, 'ごまこ', 65], [75, 85, 95]]
# インデックス番号[2][2]の要素を変更
num_lists[2][2] = "アザラシ"
print(num_lists)
# 実行結果
# [[15, 25, 35], [45, 'ごまこ', 65], [75, 85, 'アザラシ']]
この例でも、さきほどと同様にnum_lists
という2重リストを作成しました。
続けて、num_lists[1][1]
と指定することで、1番目のリスト([10, 20, 30])の中の1番目の値(55)を指定し、この値を文字列の「"ごまこ"」に変更しています。
出力結果を見るとnum_lists[1][1]
の値が、文字列の'ごまこ'に変更できていることがわかるかと思います。
続けて、num_lists[2][2]
と指定することで、2番目のリスト([75, 85, 95])の中の2番目の値(95)を指定し、この値を文字列の「"アザラシ"」に変更しています。
出力結果を見るとnum_lists[2][2]
の値が、文字列の'アザラシ'に変更できていることがわかるかと思います。
このようにして、リストのインデックス指定を2つ並べて要素を指定し、指定した要素に値を格納することでリストの中のリストの要素を変更できます!
2重のリストの要素の変更は2回のインデックスの指定ができれば、リストの要素の更新と同じようにできるんですね!
その通りです!
繰り返し実行すると2重リストのインデックス指定も慣れてきたんじゃないかなと思います!
もしリストの要素の更新方法に不安がある方は以下の記事も参考にしてください!
最後に確認問題を解いて今回学んだ内容を復習しましょう!
確認問題
①変数名lists_in_listという名前のリストを作成して、
以下のように値を格納してください。
lists_in_list = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]
その後、lists_in_list
を出力してください。
②上記①で作成したlists_in_list
でインデックス指定を用いて、
要素「7」を取り出して出力してください。
③上記①で作成したlists_in_list
でインデックス指定を用いて、
要素「3」を取り出して出力してください。
④上記①で作成したlists_in_list
でインデックス指定を用いて、
要素「5」を文字列「"ごまお"」に変更してください。
その後、lists_in_list
を出力してください。
確認問題 解答例
# ①変数名lists_in_listという名前のリストを作成して、
# 以下のように値を格納してください。
# lists_in_list = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]
# その後、lists_in_listを出力してください。
lists_in_list = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]
print(lists_in_list)
# 実行結果
# [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# ②上記①で作成したlists_in_listでインデックス指定を用いて、
# 要素「7」を取り出して出力してください。
print(lists_in_list[2][0])
# 実行結果
# 7
# ③上記①で作成したlists_in_listでインデックス指定を用いて、
# 要素「3」を取り出して出力してください。
print(lists_in_list[0][2])
# 実行結果
# 3
# ④上記①で作成したlists_in_listでインデックス指定を用いて、
# 要素「5」を文字列「"ごまお"」に変更してください。
# その後、lists_in_listを出力してください。
lists_in_list[1][1] = "ごまお"
print(lists_in_list)
# 実行結果
# [[1, 2, 3], [4, 'ごまお', 6], [7, 8, 9]]
まとめ
この記事では、Pythonの2重リストの作成と要素の取り出し方法・変更方法について解説しました。
2重リストの要素の取り出しには、インデックス指定を2回使うことで、リストの中のリストの要素を取り出すことができました。
また、要素の変更もインデックス指定と値の代入(格納)を組み合わせて行うことができます。
2重リストを使うことで、複雑なデータ構造や行列操作を表現することができます。
例示したプログラムを実際に試してみることで、理解を深めることができると思います!
次回は辞書型について解説します。
お楽しみに!
このサイトの記事一覧へは以下へアクセス!
コメント