今回は、ブタきむちの基礎固め編ということで、
list・tuple・set・dict型の使い方について紹介していきます。
1.リスト型(list)について
まずリスト型についてです。リストと型は実際のプログラムの中で非常によく使用されます。
リストとは中に入れるデータを0から順番に番号が付く仕組みのデータ型になります。
さらに、リストは一度に多くのデータを扱える点や、データの追加や変更、削除と柔軟にデータを扱えることができます。
では実際の例題とともに見ていきましょう。
1.1 リストを作成
#list:l に適当な値を入力する。 l = ["1600", "1980", "2000", "2020", "3000"] print("lの値:{}".format(l), "lの型は:{}".format(type(l))) >>>lの値:['1600', '1980', '2000', '2020', '3000'] lの型は:<class 'list'>
list型は四角カッコ→[]を使用することでリストを作成することができます。
type関数を使用すると、作成したリストが、list型かどうかを確認することができます。
1.2 リストの要素にアクセス
#リストの0番目の要素にアクセス l[0] >>>'1600' #リストの-1番目の要素にアクセス l[-1] >>>'3000' #リストの要素からインデックスを確認 l.index("2020") >>>3
リストの要素にアクセスするためには、四角カッコ[]を使用して要素番号を引数に入力すると、要素を取得できます。
さらに、-1番目や-2番目と添え字に指定すると、リストの逆順でアクセスできます。イメージ図は以下の通りです。
(参照:Pythonスタートブックより)
1.3 リストに要素を追加
#リストに要素を追加する l.append(2011) >>> ['1600', '1980', '2000', '2020', '3000', 2011]
list型には、append関数を使用しデータを追加していきます。
リストにデータを追加するappend関数について
作成したリスト.append(引数:追加する数字や”文字列”を入力)
1.4 リストの拡張
# listはint型・float型・str型・変数など様々な型のものを入れることができる # 変数subに適当に入力 sub = "4000" # 新たにリストを作成し、変数subをリストに入力します l2 = [16.5, 2019, sub, "hello", "world"] >>>[16.5, 2019, '4000', 'hello', 'world']
リスト型は int型・float型・str型・変数など様々な型のデータを追加することができます。
新たにl2というリストを作成し、その中に新しく定義したsubという変数を入力してみると、
l2には、変数subに入力した”4000”という値が入力されていると思います。
このように、変数も追加・変更することができるのもリスト型の特徴です。
1.5 リストの結合
#new_listという変数名でリストの結合 new_list = l + l2 print(new_list) >>>['1600', '1980', '2000', '2020', '3000', 2011, 16.5, 2019, '4000', 'hello', 'world']
リストの結合は簡単です。結合したいリストを「+」で足し合わせれば結合終了です。
1.6 リストの様々な機能(数を抽出・反転・昇順)
# l = ["1600", "1980", "2000", "2020", "3000"] #len()で要素の数を数える len(l) >>>5 #list()を反転・昇順することもできる l.reverse() >>>['3000', '2020', '2000', '1980', '1600'] l.sort() >>>['1600', '1980', '2000', '2020', '3000']
リストの数を調べることや順序を変更することも可能です。
リストの中身の個数を調べる:len(引数:調べたいリスト)
リストの順序を反転:リスト.reverse(引数は指定しない)
リストの昇順:リスト.sort(引数は指定しない)
1.7 リストの要素の削除
#list内の要素削除(以下の2つのどちらかで実行可能) l.clear() del l[:]
リストの要素の削除は、clear()関数もしくはdel関数を使用し、要素の削除をすることができます。
2.タプル(tuple)について
タプルはリスト型と非常に機能は似ています。しかし、リストと違いタプルは、一度作成するとリスト型のように変更することができません。
では実際に見てみましょう。
# tupleの作成 tuple = ("1600", "1980", "2000", "2020", "3000") print("tupleの要素{}".format(tuple)) >>>tupleの要素('1600', '1980', '2000', '2020', '3000') print("tupleの型{}".format(type(tuple))) >>>tupleの型<class 'tuple'>
リストは四角カッコ記号でくくるのに対し、タプルの作成は丸カッコ→()を使用していきます。
type関数を使用してtupleを調べると、classはtupleになっているのが確認できるかと思います。
しかしタプルはリストと違い、 一度作成すると要素を追加や入れ替えの変更をすることができません。
#作成したtupleに要素を追加してみる tuple[3] = 1992 >>>Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment
実際にtuple型にデータを追加しようとすると、上記のようなエラーコードが出ます。
このエラーコードは、タプルに要素を追加できませんというエラーになります。
3.set型について
set型は、リストとタプルと似ていて集合型とも呼ばれます。
リストやタプルと何が違うかというと、ユニークな要素だけを保持します。つまり同じ要素が1つだけしか持つことができません。
集合型は波カッコ{}を使用します。
#集合型を作成する set = {1,2,3,4} pritn(set) >>>{1, 2, 3, 4} SET= {1,6,5,3,9,5,5} print(SET) >>>{1, 3, 5, 6, 9}
上記のsetを見てもらうと、リストやタプルと変わりはないですが、
下の段のSETを見てもらうと、重複した要素があるにもかかわらず、出力される要素は1つずつしかありません。
またset(集合型)は、順序を持たないため、インデックス指定をして要素を取り出すことができません。
また集合型は、集合型同士の演算を行うこともできます。
set-SET #差集合
set|SET #和集合
set&SET #積集合
set^SET #対称差
4.辞書型(dict)について
辞書型もリストとタプルのように複数のデータを保持するものですが、リストなどと違うのは各要素を「値(value)」と「鍵(key)」のペアで保持するデータ型になります。
辞書型は波カッコ{}を使用します。
4.1 dict型の作成
sample_dict = {"001":"japan", "002":"USA","003":"USE"} pritn(sample_dict) >>>{'001': 'japan', '002': 'USA', '003': 'USE'} print(sample_dict["002"]) >>>USA
辞書型には上記の例にある通り、”001″という「鍵」と、”japan”という「値」が紐づいてデータが格納されているのがわかります。
キーが定義されていない要素にアクセスすると、エラーが表示されます。
>>>sample_dict[81]
Traceback (most recent call last):
File “<stdin>”, line 1, in KeyError: 81
4.2 dict型:「鍵」と「値」の取得
>>> sample_dict.values() dict_values(['japan', 'USA', 'USE']) >>> sample_dict.keys() dict_keys(['001', '002', '003'])
上記のように、dict.values()関数を使用すると辞書型の値の部分が出力され、dict.keys()関数を使用すると辞書型の鍵部分が出力されます。
4.3 辞書型のデータの追加と変更
sample_dict["003"] = "China" #変更 >>>{'001': 'japan', '002': 'USA', '003': 'China'} sample_dict["004"] = "Tokyo" #追加 >>>{'001': 'japan', '002': 'USA', '003': 'China', '004': 'Tokyo'} del sample_dict["001"] #削除 >>>{'002': 'USA', '003': 'China', '004': 'Tokyo'}
辞書型の値の部分には、数値や文字列、リストなどなんでも入れることが可能ですが、
辞書型の鍵「keys」の部分は、イミュータブル、つまり中身が変更できないので気を付けましょう。
5. 終わりに
今回は、データを扱う上で非常に重要な、list・tuple・set・dictの使い方について紹介しました。
listに関しては私も頻繁に使用する型になるので、Python初心者の方はしっかり押さえておくべきポイントになるでしょう。
これからもブタきむちの復習がてらシリーズを投稿していきたいと思います。
ブタきむちはPython初心者をサポートできるよう頑張ります!!
コメント