リストとかタプルとか集合とか
リスト:変更可能(mutable)
使うには「 [ ] 」角カッコを使う。
タプル:変更不能(immutable)
使うには「 ( ) 」丸カッコを使う。
集合:重複しない要素を順不同で集めたもの。利用方法は存在判定。
使うには「 { } 」中カッコを使う。
ディクショナリ:キーの唯一性(一つの辞書の中で重複しない)
使うには「 { kye:value } 」中カッコとキーバリューを使う。
※リストとタプルは順序を持つ要素の集まりという共通点がある
集合(set)の特徴
・集合とは重複しない要素を順不同に集めたもの。
・集合を作成する場合は「{}」または「set()関数」を使う。
・空の集合を作成する場合は「set()」を使う。
辞書(dictionary)の特徴
・ディクショナリには「キー」と「インデックス」がある。
・ディクショナリは「キー:値」で保存する。
・ディクショナリの中では重複することができない。
・中カッコを対「{}」で書くことによってからのディクショナリを作成できる。
・del関数で削除することができる。
・あるキーがディクショナリに存在するかをチェックする場合は「in」を使う。値ではない。
・ディクショナリにループを使ってキーと値を出力したい場合は、ループの出力対象に「.items()」をつける
1 2 3 4 |
zisho = {'key1': 1, 'key2': 2, 'key3': 3} for key, value in zisho.items(): print(key, value) |
【出力結果】
key1 1
key2 2
key3 3
シーケンスの比較
シーケンスの比較する場合は、次の順で比較する。
1.最初のアイテム同士を比較
2.同じであれば、次の値で比較
3.なくなるまで繰り返す
4.すべてが同じであれば同一シーケンスとして考えられる。
5.もし、同じシーケンスで、片方の長さが短い場合は、長いほうが大となる。
6.文字列の場合はそれぞれの文字のUnicodeポイント番号を使う。
基本はアルファベット順で大きくなっていく。
大文字と小文字の場合は、小文字の方が番号は大きい。
e=0065 E=0045
h=0068 H=0048
■ 個人的な間違えるポイント
カッコで囲まれている文字の比較。
数字が多い方が有利。同じ数の場合、数が多い方が大きくなる。
例) (‘ab’,’cd’) < ('abc','ab')
この場合、先頭の「abとabc」が比較されて決着がつくため次の「cdとab」の比較はされず「True」となる。
例) (‘ab’,’cd’) < ('ab','ab')
この場合は先頭の「abとab」が同じであるため、「cdとab」の比較になり、左側の式の方が大きいので「False」となる。
リストの行列入れ替え方法
1 2 3 4 5 6 7 8 9 10 11 |
matrix = [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], ] # 入れ替え方法 matrix2 = [[row[i] for row in matrix] for i in range(4)] print(matrix) print(matrix2) |
【出力結果】
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]] [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
リストの削除(remove)について
1 2 3 4 |
a = [1,3,4,6,3,5] print(a) a.remove(6) print(a) |
[1, 3, 4, 6, 3, 5] [1, 3, 4, 3, 5]
リストのpopについて
指定した位置のアイテムリストから削除して、そのアイテムを返す。
インデックスを指定しない場合は、最後のアイテムが選択される。
pop(-1)とした場合は、インデックスを指定しない場合と同じ結果になる。
1 2 3 4 5 |
list = [-10, 1, 15, 20, 30] list.pop() print(list) list.pop(-1) print(list) |
【出力結果 list.pop()とlist.pop(-1)は同じ結果となる】
[-10, 1, 15, 20] [-10, 1, 15, 20]