コンテンツ
データ型の種類<リスト型>
⑥リスト型
データ型の種類として「リスト型」というものがあります。
リストという大きな箱に、小さなデータを複数入れることができる、というイメージです。
データをまとめることができる便利な型なので、
頻繁に利用されるデータ型になります。
※C言語の配列と同じ型になります。
リスト型のフォーマットは、
“[a, b, c, ・・・ ]”
となり、”[“ではじまり”]”で終わります。
その中に入るデータを”,”でくくります。
リスト型の例)
[(文字列型)"abcde",(整数型)100,(文字列型)'hello']
というような形で、
文字列型、整数型など異なる型をまとめて
書くことができます。
リスト型に定義した値は、変数に入れることができます。
また、リスト型のそれぞれのデータを要素と呼びます。
リスト型のデータの要素は、左から順番に
0,1,2,・・・と数えます。
次のサンプルプログラムで「リスト型」の使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
exlist = ["abcde", 100, 'hello']
print(exlist)
print(exlist[2])
<実行結果>
>>> exlist = ["abcde", 100, 'hello']
>>> print(exlist)
['abcde', 100, 'hello']
>>> print(exlist[2])
hello
リスト型exlistに定義した値
“abcde”, 100, ‘hello’
が、出力できました。
リスト型exlistの要素2番目の値を出力すると、
“hello”
が出力されました。
※リスト型の要素は0番目からはじまります。この例では
exlistの要素[0]は、”abcde”
exlistの要素[1]は、100
exlistの要素[2]は、’hello’
が格納されています。
リスト型の機能(データを追加する):append()
リスト型には、あとからリストにデータを追加することができます。
使い方は、リスト型の変数のあとに、
「append(“追加したいデータ”)」という関数[メソッド]を実行します。
次のサンプルプログラムで「append()」の使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
exlist = ["abcde", 100, 'hello']
exlist.append("world")
print(exlist)
exlistというリスト型の最後に、
“world”という文字列型の文字列を追加しました。
これを出力した結果は次のようになります。
<実行結果>
>>> exlist = ["abcde", 100, 'hello']
>>> exlist.append("world")
>>> print(exlist)
['abcde', 100, 'hello', 'world']
exlistのリスト型の変数に、
“world”という文字列が追加されました。
リスト型の機能(データを削除する):remove()
リスト型のデータを、あとから削除することができます。
使い方は、リスト型の変数のあとに、
「remove(“削除したいデータ”)」という関数[メソッド]を実行します。
次のサンプルプログラムで「remove()」の使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
exlist = ["abcde", 100, 'hello']
exlist.remove("hello")
print(exlist)
exlistというリスト型から
“hello”という文字列型の文字列を削除しました。
これを出力した結果は次のようになります。
<実行結果>
>>> exlist = ["abcde", 100, 'hello']
>>> exlist.remove("hello")
>>> print(exlist)
['abcde', 100]
exlistのリスト型の変数から、
“hello”という文字列が削除されました。
リスト型の機能(データの順番を変更する):sort()
リスト型のデータの中身の順番を
整数なら小さい順に
文字列ならアルファベット順に
並び替えることができます。
※ただし、リスト型のデータの型に、
文字列型と数値型が混じっていると
文字列と数値どちらが小さいのか判断できないので
並び替えができません。
使い方は、リスト型の変数のあとに、
「sort()」という関数[メソッド]を実行します。
次のサンプルプログラムで「sort()」の使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
exlist = ["orange", "grape", "apple"]
exlist.sort()
print(exlist)
exlistというリスト型(文字列)を
アルファベット順に並び変えるようにしました。
これを出力した結果は次のようになります。
<実行結果>
>>> exlist = ["orange", "grape", "apple"]
>>> exlist.sort()
>>> print(exlist)
['apple', 'grape', 'orange']
アルファベット順に並び変えられたので、
‘apple’, ‘grape’, ‘orange’
で出力されました。
次に数値型のリストで確認します。
exlist = [100, 5, 39]
exlist.sort()
print(exlist)
exlistというリスト型(数値型)を
小さい順に並び変えるようにしました。
これを出力した結果は次のようになります。
>>> exlist = [100, 5, 39]
>>> exlist.sort()
>>> print(exlist)
[5, 39, 100]
小さい順に並び変えられて
[5, 39, 100]
で出力されました。
リスト型の機能(任意のデータを書き換える)
リスト型には任意の場所のデータを、上書きで変更することができます。
使い方は、リスト型の要素番号を指定し、
変更したいデータを記載することで、その要素番号のデータが上書きされます。
次のサンプルプログラムで使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
exlist = ["orange", "grape", "apple"]
exlist[1] = "cherry"
print(exlist)
exlistの要素番号[1]には、”grape”という文字列が入っています。
これを”cherry”という文字列で上書きする
というプログラムになります。
これを出力した結果は次のようになります。
<実行結果>
>>> exlist = ["orange", "grape", "apple"]
>>> exlist[1] = "cherry"
>>> print(exlist)
['orange', 'cherry', 'apple']
exlistの要素番号[1]の”grape”が、
“cherry”という文字列で上書きされて、exlistが出力されました。
データ型の種類<辞書型>
⑦辞書型
データ型の種類として「辞書型」というものがあります。
本物の辞書のように、「見出し」と「用語の説明」のような形で、
「見出し:見出しに関するデータ」をセットにして使います。
「見出しに関するデータ」ですが、これまでに出てきた
数字型や文字列型のデータを使います。
使い方は、以下のようになります。
{見出し1:見出し1のデータ, 見出し2:見出し2のデータ, ・・・}
リスト型と同じように
辞書型に定義した値は、変数に入れることができます。
次のサンプルプログラムで「辞書型」の使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
exdic = {"orange":100, "grape":200, "apple":300}
exdic["orange"]
辞書型exdicに代入した「orange」の中身のデータを確認します。
<実行結果>
>>> exdic = {"orange":100, "grape":200, "apple":300}
>>> exdic["orange"]
100
辞書型exdicに代入した「orange」の中身のデータである”100″が、出力できました。
データ型の種類<タプル型>
⑧タプル型
データ型の種類として「タプル型」というものがあります。
タプル型は、⑥リスト型とよく似た作りになっており、
複数のデータを1つにまとめることができます。
タプル型はリスト型と異なり、
はじめに定義したデータから
データの中身の変更ができません。
※リスト型は追加・変更・削除等ができます
タプル型のフォーマットは、
"(a, b, c, ・・・ )"
となり、"("ではじまり")"で終わります。
その中に入るデータを","でくくります。
次のサンプルプログラムで「タプル型」の使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
extuple = ("orange", "grape", "apple", "cherry")
print(extuple)
タプル型extupleの中身のデータを確認します。
<実行結果>
>>> extuple = ("orange", "grape", "apple", "cherry")
>>> print(extuple)
('orange', 'grape', 'apple', 'cherry')
次に、タプル型extupleのデータを、ソートできるか確認してみます。
>>> extuple.sort()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'sort'
tuple型のデータは、sortできませんというエラーが出ました。
リスト型と似ていますが、タプル型ではリスト型と同じ働きはできません。
タプルとリストを併記する
タプル型のデータの中に、リスト型のデータを書くことができます。
また、その逆で
リスト型のデータの中に、タプル型のデータを書くことができます。
次のサンプルプログラムで「タプル型とリスト型の入れ子」の使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
str1 = ("orange", ["grape", "apple"], "cherry")
print(str1)
str1はタプル型の中に、リスト型のデータがあります。
これをsortするとどうなるか確認してみましょう。
str1.sort()
<実行結果>
>>> str1.sort()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'sort'
tuple型のデータは、sortできませんというエラーが出ました。
str2 = ["orange", ("grape", "apple"), "cherry"]
print(str2)
str2はリスト型の中に、タプル型のデータがあります。
これをsortするとどうなるか確認してみましょう。
<実行結果>
str2.sort()
Traceback (most recent call last):
File "", line 1, in
TypeError: '<' not supported between instances of 'tuple' and 'str'
tuple型とstr型のデータは、サポートしていませんというエラーが出ました。
では、リスト型の要素番号0番目を書き換えられるか確認します。
str2[0] = "mikan"
print(str2)
<実行結果>
>>> str2[0] = "mikan"
>>> print(str2)
['mikan', ('grape', 'apple'), 'cherry']
リスト型の要素番号0番目の書き換えができました。
データ型の種類<集合(セット)型>
⑨集合(セット)型
集合(セット)型は、リスト型とタプル型と同じような利用方法で、
複数あるデータを1つにまとめることが可能なデータ型になります。
集合(セット)型の特徴としては、データの要素に順番がなく(並び替えされる)、
また重複をしない(同じデータは1つになる)という性質があります。
使い方は、以下のようになります。
{データ1, データ2, ・・・}
次のサンプルプログラムで「集合(セット)」の使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
data = {"orange", "grape", "apple", "orange"}
print(data)
dataの要素0番目と3番目が、”orange”で重複しています。
集合(セット)型dataの中身を確認してみます。
<実行結果>
>>> data = {"orange", "grape", "apple", "orange"}
>>> print(data)
{'apple', 'grape', 'orange'}
データの要素で重複していた”orange”が1つになっています。
また、それぞれの要素ですが、
アルファベット順に並び替えがされています。
もう1つ整数のサンプルも確認してみます。
data = {10, 5, 3, 5, 4, 2, 6, 8, 10}
print(data)
dataの要素”10,5,3″が重複しています。
集合(セット)型dataの中身を確認してみます。
<実行結果>
>>> data = {10, 5, 3, 5, 4, 2, 6, 8, 10}
>>> print(data)
{2, 3, 4, 5, 6, 8, 10}
データの要素で重複していた”10,5,3″がなくなり1つになっています。
また、整数が小さい順に並び替えがされています。
集合(セット)型の機能(集合型をつくる):set()
すでにあるデータ型や、新しく集合型をつくることができる
set()という関数があります。
新しく集合型を作る場合は以下のように書きます。
set(集合型にしたいデータ)
次のサンプルプログラムで使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
newdata1 = set('orange')
print(newdata1)
‘orange’という文字列を集合型にしました。
<実行結果>
>>> newdata1 = set('orange')
>>> print(newdata1)
{'e', 'r', 'a', 'n', 'g', 'o'}
orangeの文字列から1文字ずつバラバラの要素として、集合型に定義されました。続けて、整数でも確認してみましょう。
newdata2 = set('98765234')
print(newdata2)
<実行結果>
>>> newdata2 = set('98765234')
>>> print(newdata2)
{'5', '6', '8', '4', '9', '3', '2', '7'}
98765234の文字列から1文字ずつバラバラの要素として、集合型に定義されました。
データの要素をまとめて登録したい場合
データの要素をまとめて登録したい場合は、リスト型に定義してからセットします。次のサンプルプログラムで確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
data = ["orange", "grape", "apple"]
newdata = set(data)
print(newdata)
<実行結果>
>>> data = ["orange", "grape", "apple"]
>>> newdata = set(data)
>>> print(newdata)
{'apple', 'grape', 'orange'}
リスト型dataを、集合型newdataにセットしました。
そのため、リスト型のそれぞれのデータで出力されました。
集合(セット)型に要素を追加する:add()
add()を使うことで、集合型の要素を追加ができます。使い方は次のようになります。
add(追加したい集合型のデータ)
次のサンプルプログラムで使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
data = ["orange", "grape", "apple"]
newdata = set(data)
newdata.add("mikan")
print(newdata)
<実行結果>
>>> data = ["orange", "grape", "apple"]
>>> newdata = set(data)
>>> newdata.add("mikan")
>>> print(newdata)
{'apple', 'grape', 'orange', 'mikan'}
“mikan”の要素が追加された集合型が出力されました。
集合(セット)型から要素を削除する:discard()
discard()を使うことで、集合型の要素からデータを削除できます。使い方は次のようになります。
discard(削除したい集合型のデータ)
次のサンプルプログラムで使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
data = ["orange", "grape", "apple"]
newdata = set(data)
newdata.discard("grape")
print(newdata)
<実行結果>
>>> data = ["orange", "grape", "apple"]
>>> newdata = set(data)
>>> newdata.discard("grape")
>>> print(newdata)
{'apple', 'orange'}
“grape”の要素が削除された集合型が出力されました。
集合(セット)型から全要素を削除する:clear()
clear()を使うことで、集合型の要素から全データを削除できます。使い方は次のようになります。
clear()
次のサンプルプログラムで使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
data = ["orange", "grape", "apple"]
newdata = set(data)
newdata.clear()
print(newdata)
集合型newdataの全データを削除する処理を行いました。
<実行結果>
>>> data = ["orange", "grape", "apple"]
>>> newdata = set(data)
>>> newdata.clear()
>>> print(newdata)
set()
集合型newdataの全データが削除されています。
集合(セット)型から要素数を取得する:len()
len()を使うことで、集合型の要素数を取得できます。使い方は次のようになります。
len(要素数を取得したい集合型のデータ)
次のサンプルプログラムで使い方を確認しましょう。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
data = ["orange", "grape", "apple"]
newdata = set(data)
len(newdata)
<実行結果>
>>> data = ["orange", "grape", "apple"]
>>> newdata = set(data)
>>> len(newdata)
3
リスト型dataの要素が3つあり、集合型newdataにセットしていますので、
要素が3つ、として数が出力されました。
集合(セット)型同士で計算する
集合(セット)型には、集合(セット)型同士での演算ができます。ここではよくつかわれる例をサンプルプログラムで説明します。
Pythonコマンドを実行して、以下のプログラムを対話モードで確認してみてください。
data1 = {"orange", "grape", "apple"}
data2 = {"orange", "grape", "apple", "cherry"}
data2 - data1
集合(セット)型「data2からdata1」の差をとります。
<実行結果>
>>> data1 = {"orange", "grape", "apple"}
>>> data2 = {"orange", "grape", "apple", "cherry"}
>>> data2 - data1
{'cherry'}
集合(セット)型「data2からdata1」の差は、”cherry”になりました。もう1つサンプルプログラムで確認します。
data1 = {"orange", "grape", "apple"}
data2 = {"orange", "grape", "apple", "cherry"}
data1 & data2
集合(セット)型「data1とdata2」の共通部分(同じところ)をとります。
<実行結果>
>>> data1 = {"orange", "grape", "apple"}
>>> data2 = {"orange", "grape", "apple", "cherry"}
>>> data1 & data2
{'grape', 'apple', 'orange'}
集合(セット)型「data1とdata2」の共通部分は
{‘grape’, ‘apple’, ‘orange’}になりました。
このように、集合(セット)型の特徴として、集合(セット)型同士で
差分をとったり共通部分を求めたりできます。
おさらい
⑥リスト型
リスト型の機能(データを追加する):append()
リスト型の機能(データを削除する):remove()
リスト型の機能(データの順番を変更する):sort()
リスト型の機能(任意のデータを書き換える)
⑦辞書型
⑧タプル型
タプルとリストを併記する
⑨集合(セット)型
集合(セット)型の機能(集合型をつくる):set()
集合(セット)型に要素を追加する:add()
集合(セット)型から要素を削除する:discard()
集合(セット)型から全要素を削除する:clear()
集合(セット)型から要素数を取得する:len()
集合(セット)型同士で計算する