たくさんのデータを1つにまとめる| Python独学ならTech-Joho(9)

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してみてください。

 


<< 前へ 第8回 データ型とオブジェクト

> > 次へ 第10回 場合によって処理を分ける


Author: 管理

tech-joho.infoの管理人です。いろいろな技術について勉強しています。