Python独学ならTech-Joho TOP > Python入門カリキュラム > たくさんのデータを1つにまとめる
たくさんのデータを1つにまとめる
Pythonには、複数のデータを1つにまとめるためのデータ型がいくつかあります。
よくつかうのが、リスト(list)、タプル(tuple)、辞書(dictionary)、セット(set)の4種類です。
下の黒い欄では、Pythonのコードを実際に実行してみることができます。
このページに出てくる例を、打ち込んで試してみて下さい。
リスト
リストは、文字通りいろいろなデータのリストと考えて下さい。
1, 2, 3等、数字のリスト、や、”ごはん”, “パン”, “麺” など文字列のリストなど、色々作れます。
>>> [1, 2, 3] [1, 2, 2] >>> ['ごはん', 'パン', '麺'] ['ごはん', 'パン', '麺'] >>> [1, 'a', 1.00, 'alpha']
最後の例みたいに、数字と文字列が混ざったリストも作れます。
リストの各要素のデータ型に制限はありません。
リストの作り方
既に上で書いてしまいましたが、リストを作るには、リストに入れたいデータを”,”(コンマ)で区切ってつなげて、全体を[](角かっこ)でくくります。
>>> my_list = [1, 2, 3] >>> print(my_list) [1, 2, 3]
ちなみに、[と]のことを角かっこと呼ぶのを今知りました。
https://ja.wikipedia.org/wiki/%E6%8B%AC%E5%BC%A7
なお、角かっこだけを書けば、空のリストをつくることもできます。
>>> empty_list = [] >>> print(empty_list) []
要素へのアクセス
例えば、あるリストの2番目の要素を取り出すなど、リストの特定の要素だけにアクセスできます。
つまりこういうことです。
>>> my_list = [1, 2, 3] >>> print(my_list[1]) 2
わかりますか?
my_listの番号1(前から2番目)の要素を取り出してみました。
取り出すには、リストの変数名の後ろに[]でくくって、取り出したいデータの番号を入れます。
pythonでは、リストの番号は0から始まります。
なので、前から2番目の要素は、番号1になります。
同じように、前から3番目の要素は、番号2になります。
>>> my_list = ['a', 'b', 'c'] >>> print(my_list[2]) c
要素の追加・変更・削除
リストには、後から要素を追加できます。
追加するには、appendメソッドを使います。
>>> my_list = ['a', 'b', 'c'] >>> print(my_list) ['a', 'b', 'c'] >>> my_list.append('d') >>> print(my_list) ['a', 'b', 'c', 'd']
この例では、’d’をリストの一番後ろに追加しています。
リストの要素は、変更することができます。
変更は、要素にアクセスするときと似ています。
変数名の後ろに[]と変更したい要素の番号を書いて、そこに=で代入します。
>>> my_list = ['a', 'b', 'c'] >>> print(my_list) ['a', 'b', 'c'] >>> my_list[2] = 'cccc' >>> print(my_list) ['a', 'b', 'cccc']
この例では、リストの3番目(番号2)の要素を、’c’から’ccc’に変えました。
また、リストの要素を削除するには、popメソッドを使います。
>>> my_list = ['a', 'b', 'c'] >>> my_list.pop(1) >>> print(my_list) ['a', 'c']
リストの連結
リスト同士で足し算すると、つながります。
>>> my_list = ['a', 'b', 'c'] >>> other = ['x', 'y', 'z'] >>> print(my_list + other) ['a', 'b', 'c', 'x', 'y', 'z']
リストについてのもう少し詳しい内容は、こちらで解説する予定です。
リストを操作する動画をとりました。こんな感じになります。
文字列
文字列も、文字というデータがたくさん集まったものです。
そのため、リストと同じような操作ができます。ここでは、文字列の1部を取り出す方法について解説しておきます。
文字列の変数名の後ろに[]を書き、その中に0から始まる番号を書くと、その番号の文字を取り出すことができます。
>>> mojiretsu = 'aiueo' >>> mojiretsu[0] 'a' >>> mojiretsu[1] 'i'
上の例では、文字列’aiueo’をmojiretsuという変数に割り当てています。そのあと、mojiretsu[0]で最初の文字aを取り出しています。
さらにそのあと、mojiretsu[1]で二番目の文字iを取り出しています。
タプル
タプルは変更できないリストみたいなものです。
丸かっこ()を使ってつくります。
>>> my_tuple = (1, 'a', 'あ') >>> print(my_tuple) (1, 'a', 'あ')
タプルの要素にアクセスするときは、リストと同じように[]を使います。
>>> my_tuple = (1, 'a', 'あ') >>> print(my_tuple[1]) 'a'
タプルの要素を、変更することはできません。変更しようとすると、エラーがでます。
>>> my_tuple = (1, 'a', 'あ') >>> my_tuple[1] = 'あいうえお' Traceback (most recent call last): module __main__ line 134 traceback.print_exc() module line 1 my_tuple[1] = 'あいうえお'TypeError: 'tuple' object does not support item assignment
辞書
辞書は、番号ではなく、文字列に対応づけてでデータを保存できるものです。
英語のまま、ディクショナリとカタカナで書いてよぶこともあります。
どういう意味かというと、リストでは、個々の要素を0番, 1番, という風に数字で指定しますが、
辞書では、’a’, ‘b’など文字列で指定できます。
また、リストは角かっこ[]でつくりましたが、辞書は波かっこ{}でつくります。
この例を見てください。
>>> fruits = {'apple': 'リンゴ', 'orange': 'オレンジ', 'melon': 'メロン'} >>> print(fruits) {'apple': 'リンゴ', 'orange': 'オレンジ', 'melon': 'メロン'} >>> fruits['orange'] 'オレンジ'
この例では、英単語とその訳の日本語をペアで保存しています。変数名furuitsの後ろに[]を続けて、中に’orange’といれると、’オレンジ’という対応付けた文字列が取り出せました。
こういう例もあります。都道府県名と、その件が関東にあるか関西にあるか、という文字列を対応付けています。
>>> prefectures = {'東京': '関東', '神奈川': '関東', '大阪': '関西'} >>> print(prefectures) {'東京': '関東', '神奈川': '関東', '大阪': '関西'}
この場合、変数名prefecturesの後ろに、[]をつけて、中に’東京’といれると、’関東’が取り出せました。
>>> prefectures = {'東京': '関東', '神奈川': '関東', '大阪': '関西'} >>> print(prefectures['神奈川']) '関東'
辞書の練習
>>>languages = {'ruby': 'ルビー', 'php': 'ピーエイチピー', 'python': 'パイソン'}
上のlanguagesは、プログラミング言語の英語の名前とそのよみかたの辞書です。
下の黒い欄にプログラミングを書いて、上の辞書からpythonの読み方を取り出して表示してみて下さい。
セット
重複のないデータの集まりです。
リストでは、[1, 2, 1, 3, 1]のように、要素同士に同じものがあっても大丈夫ですが、セットは同じものが入りません。
セットをつくるには、空っぽのセットを作ってから、要素を追加します。
>>> test_set = set() #空のセットを作ります。 >>> print(test_set) set([ ])
>>> test_set.add('a') >>> test_set.add('b') >>> test_set.add('c') >>> print(test_set) set(...)
または、既存のリストやタプルをセットへと変換して作ります。
>>> from_list = set(['か','き','く']) >>> print(from_list) set({'か', 'き', 'く'})
セットの練習
空っぽのセットをつくってから、’a’を3こ追加して、printしてみてください。