【5章】 データ構造

リストとかタプルとか集合とか

リスト変更可能(mutable)
 使うには「 [ ] 」角カッコを使う。
タプル変更不能(immutable)
 使うには「 ( ) 」丸カッコを使う。
集合:重複しない要素を順不同で集めたもの。利用方法は存在判定。
 使うには「 { } 」中カッコを使う。
ディクショナリ:キーの唯一性(一つの辞書の中で重複しない)
 使うには「 { kye:value } 」中カッコとキーバリューを使う。
※リストとタプルは順序を持つ要素の集まりという共通点がある


集合(set)の特徴

・集合とは重複しない要素を順不同に集めたもの。
・集合を作成する場合は「{}」または「set()関数」を使う。
・空の集合を作成する場合は「set()」を使う。


辞書(dictionary)の特徴

・ディクショナリには「キー」と「インデックス」がある。
・ディクショナリは「キー:値」で保存する。
・ディクショナリの中では重複することができない。
・中カッコを対「{}」で書くことによってからのディクショナリを作成できる。
・del関数で削除することができる。
・あるキーがディクショナリに存在するかをチェックする場合は「in」を使う。値ではない。

・ディクショナリにループを使ってキーと値を出力したい場合は、ループの出力対象に「.items()」をつける

【出力結果】
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, 12]] 
 [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

リストの削除(remove)について
【出力結果】
[1, 3, 4, 6, 3, 5] 
 [1, 3, 4, 3, 5]

リストのpopについて

指定した位置のアイテムリストから削除して、そのアイテムを返す。
インデックスを指定しない場合は、最後のアイテムが選択される。
pop(-1)とした場合は、インデックスを指定しない場合と同じ結果になる。

【出力結果 list.pop()とlist.pop(-1)は同じ結果となる】
[-10, 1, 15, 20] 
 [-10, 1, 15, 20]