これまでデータ型は文字列型、整数型、浮動小数点型、ブール型(TrueまたはFalseが入る型)などを見てきました。
変数に入っているのは整数だったり、文字列だったり、TrueまたはFalseだったり、それぞれ一つの値が入っていました。
今回はリスト型、タプル型、辞書型、集合型という複数の値を一つの変数で管理できるものを見ていきます。
他のプログラム言語では配列と呼ばれています。
今までのやり方
例えば3つの値を管理する場合、変数を3つ用意して代入します。
a1 = “文字列1”
a2 = “文字列2”
a3 = “文字列3”
それぞれの変数をprint。
print(a1)
print(a2)
print(a3)
今回のやり方
変数aに3つのデータを代入するために、リスト型を変数aに代入します。
a = [“文字列1″,”文字列2″,”文字列3”]
文字列のところでやりましたが、今回の場合 a のインデックス(添字)を指定することで、その中の値にアクセスできます。
print(a[0])
print(a[1])
print(a[2])
ともに結果は同じです。
リスト型(list)
表記方法
角括弧[]を使う。
[“値1″,”値2″,”値3”]
値には色々なデータ型が入れられます。
混ぜて入れることもできます。
[“値”,10,3.14]
初期化
空のリストを作る
a = []
または
a = list()
0埋めでサイズ指定リスト
a = [0]*10
最初から要素を入れたリスト
a = [‘こ’, ‘ん’, ‘に’, ‘ち’, ‘は’]
要素へのアクセス
a = [‘こ’, ‘ん’, ‘に’, ‘ち’, ‘は’]
インデックス(添字)で各要素へアクセスできます。
a[0]なら「こ」
a[1]なら「ん」
a[2]なら「に」
a[3]なら「ち」
a[4]なら「は」
また、このようにアクセスできます。
n番目からm-1番目の要素を取り出す a[n:m]
a[1:4]なら[‘ん’, ‘に’, ‘ち’]
a[:4]なら[‘こ’, ‘ん’, ‘に’, ‘ち’]
a[1:]なら[‘ん’, ‘に’, ‘ち’, ‘は’]
a[:]なら全部[‘こ’, ‘ん’, ‘に’, ‘ち’, ‘は’]
要素を変更
a = [‘こ’, ‘ん’, ‘に’, ‘ち’, ‘は’]
該当の要素に変更したい値を代入
a[4] = “わ”
print(a)
結果
[‘こ’, ‘ん’, ‘に’, ‘ち’, ‘わ‘]
要素へ追加
appendメソッドで要素を末尾に追加できます。
空のリストを作り、
a = []
一つずつ追加してみます。
a.append(“こ”)
a.append(“ん”)
a.append(“に”)
a.append(“ち”)
a.append(“は”)
結果、変数 a はこうなりました。
[‘こ’, ‘ん’, ‘に’, ‘ち’, ‘は’]
結合
リスト同士を+で結合できます。
a = [1,2,3,4]
b = [5,6,7,8]
print(a+b)
結果
[1, 2, 3, 4, 5, 6, 7, 8]
ループ
1 2 3 |
a = [2,4,6,8,10] for i in a: print(i) |
結果
2
4
6
8
10
enumerate関数を使うと、インデックスも取れる
1 2 3 |
a = [2,4,6,8,10] for k,v in enumerate(a): print(f"{k}→{v}") |
結果
0→2
1→4
2→6
3→8
4→10
in演算子
リストに指定した値が含まれているかどうかTrueかFalseを返します。
a = [1,2,3,4,5]
print(3 in a)
結果
True
indexメソッド
指定した値のインデックスを調べます。
a = [1,2,3,4,5]
print(a.index(5))
結果
4
値がない場合はValueErrorになります。
countメソッド
指定した値がいくつ含まれるかをカウントします。
a = (1,2,3,4,5,1,1)
print(a.count(1))
結果
3
ソート
sortメソッド昇順ソート
a = [10,1,9,6,7,3,5,4,2,8]
a.sort()
print(a)
結果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sortメソッド降順ソート
a = [10,1,9,6,7,3,5,4,2,8]
a.sort(reverse=True)
print(a)
結果
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
sorted関数昇順ソート(元のリストは変更しない)
a = [10,1,9,6,7,3,5,4,2,8]
b = sorted(a)
print(b)
結果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sorted関数降順ソート(元のリストは変更しない)
a = [10,1,9,6,7,3,5,4,2,8]
b = sorted(a, reverse=True)
print(b)
結果
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
reverseメソッド(要素を逆に並び替える)
a = [1,10,2,9]
a.reverse()
print(a)
結果
[9, 2, 10, 1]
タプル型(tuple)
タプル型はリスト型とほぼ同じなのですが、要素を変更できない点が違います。
タプル型を使うメリットは、リスト型よりもメモリが節約されて少しスピードが速い点と、辞書型(後述)のキーに使用できる点があります。
表記方法
丸括弧()を使う。
(“値1″,”値2″,”値3”)
初期化
最初から要素を入れたタプル
a = (10, 20, 30, 40)
要素が一つだけのタプルは、最後にカンマ(,)を記述
a = (10,)
リスト型とタプル型のキャスト
リスト型とタプル型は簡単に型変換できます。
最初はタプル
a = (1,2,3,4,5)
print(a)
結果
(1, 2, 3, 4, 5)
リストに変える
a = list(a)
print(a)
結果
[1, 2, 3, 4, 5]
タプルにする
a = tuple(a)
print(a)
結果
(1, 2, 3, 4, 5)