【Python③】リストと辞書|複数のデータや値を扱う
データサイエンスでは、数値や文字列を1つずつ扱う場面よりも、複数のデータをまとめて扱う場面のほうが多くなります。そのため、リストと辞書は早い段階で押さえておく必要があります。
ここまでで、変数・型・演算の基本を整理しました。次に必要になるのは、1つの値ではなく、複数の値をまとめて扱うための仕組みです。そこで今回は、Pythonの基礎として重要なリストと辞書を整理します。
この記事で整理すること
この記事で整理する内容は4つあります。1つ目は、リストとは何かということです。2つ目は、辞書とは何かということです。3つ目は、リストと辞書の違いです。4つ目は、それぞれがデータサイエンスの中でどのように役立つかということです。
目的は、複数のデータをまとめて扱うための基本的な考え方を身につけることです。ここを押さえると、この先のデータ処理や pandas の理解にもつながります。
リストとは何か
リストは、複数の値を順番つきでまとめて持つための仕組みです。数値の集まりや名前の一覧のように、同じ種類のデータを並べて扱いたいときによく使います。
Pythonでは、角かっこを使ってリストを作ります。たとえば、点数の一覧や名前の一覧を次のようにまとめられます。
scores = [70, 82, 91, 65]names = ["Aki", "Mina", "Taro"]
このように書くと、複数の値を1つの変数にまとめて入れられます。変数が1つの値を持つのに対して、リストは複数の値を並べて持つという違いがあります。
リストの基本的な使い方
リストの中の値は、順番を使って取り出します。この順番を指定する番号をインデックスと呼びます。
scores = [70, 82, 91, 65]print(scores[0]) print(scores)
このコードでは、最初の要素が 70、2番目の要素が 82 を表します。ここで重要なのは、Pythonのリストは 0 から数え始める ということです。
また、リストの要素はあとから変更できます。
scores = [70, 82, 91, 65]scores[0] = 75print(scores)
この場合、最初の 70 が 75 に書き換わります。リストは、複数の値を持つだけでなく、必要に応じて中身を変更できる点も重要です。
さらに、要素を追加することもできます。追加には append() を使います。
scores = [70, 82, 91]scores.append(65)print(scores)
append() を使うと、リストの末尾に新しい値を追加できます。データを少しずつ集める場面では、この形がよく出てきます。
辞書とは何か
辞書は、キーと値を対応させて持つための仕組みです。リストが順番で管理するものだとすると、辞書は名前で管理するものです。
Pythonでは、波かっこを使って辞書を作ります。たとえば、名前と点数を次のようにまとめられます。
student = {"name": "Aki", "score": 82}
この例では、name というキーに "Aki" が対応し、score というキーに 82 が対応しています。辞書は、何の値なのかをはっきりさせながらデータを持てるのが特徴です。
辞書の基本的な使い方
辞書の値は、順番ではなくキーを使って取り出します。
student = {"name": "Aki", "score": 82}print(student["name"])print(student["score"])
このコードでは、名前に対応する値と、点数に対応する値を取り出しています。リストでは番号を使いましたが、辞書ではキーを使う点が大きな違いです。
辞書の値もあとから更新できます。
student = {"name": "Aki", "score": 82}student["score"] = 90print(student)
この場合、点数に対応する値が 82 から 90 に変わります。
新しいキーと値を追加することもできます。
student = {"name": "Aki", "score": 82}student["grade"] = "A"print(student)
このように、辞書は必要な情報をあとから足していくこともできます。
リストと辞書の違い
リストと辞書はどちらも複数のデータをまとめて扱うための仕組みですが、考え方はかなり異なります。
- リストは順番つきで値を並べる
- 辞書はキーと値を対応させる
- リストは番号を使って取り出す
- 辞書はキーを使って取り出す
たとえば、テストの点数だけを並べて持ちたいならリストが向いています。一方で、「名前」「点数」「学年」のように、何の情報かを区別しながら持ちたいなら辞書が向いています。
つまり、リストは並びを重視する場面、辞書は項目名を重視する場面で使い分けるのが基本です。
データサイエンスでどう役立つか
データサイエンスでは、複数のデータをまとめて扱うことが基本になります。そのため、リストと辞書の考え方はかなり重要です。
たとえば、数値データの並びを一時的に持つならリストが使えます。複数の情報を整理して保存するなら辞書が使えます。さらに、pandas の DataFrame を理解するときにも、列の集まりや名前つきのデータという感覚が後でつながってきます。
今の段階では、リストや辞書だけで複雑な分析をする必要はありません。ただ、複数の値をまとめて持つという感覚に慣れておくことが、この先のデータ処理の基礎になります。
よくある混乱
ここでは、最初に混乱しやすい点を整理しておきます。
- リストも辞書も値を取り出すときに角かっこを使う
- リストは 0 から始まる
- 辞書は順番ではなくキーで取り出す
- リストは並びを重視し、辞書は名前を重視する
特に、リストと辞書のどちらでも角かっこが出てくるので、最初は混ざりやすいです。ただし、中に入るものが違います。リストでは番号を入れ、辞書ではキーを入れます。この違いは明確にしておく必要があります。
今の段階で押さえるべきこと
現時点で必要なのは、リストと辞書の高度な使い方を覚えることではありません。まずは、リストは順番つきのデータ、辞書は名前つきのデータという基本を確実に押さえることが重要です。
加えて、値の取り出し方と更新のしかたを読めるようにしておく必要があります。ここを曖昧にしないことが、この先の条件分岐や繰り返し処理、さらにデータ処理の理解にもつながります。
次に学ぶこと
ここまでで、複数の値をまとめて扱うための基本として、リストと辞書を整理しました。次は、条件によって処理を分けたり、同じ処理を繰り返したりするための仕組みとして、if 文と for 文を学びます。
リストや辞書を使って複数のデータを持てるようになると、次はそれらをどう処理するかが問題になります。その意味でも、次の記事は今回の内容と自然につながっています。
まとめ
リストは、複数の値を順番つきでまとめて持つための仕組みです。辞書は、キーと値を対応させて持つための仕組みです。
リストでは番号を使って値を取り出し、辞書ではキーを使って値を取り出します。この違いを明確にしておくことが重要です。複数のデータをまとめて扱う感覚は、この先のデータ処理や分析の基礎になります。
)