Python実践入門 4章 データ構造
Noneはシングルトンなので、Noneの比較をするときは is, is notを使う
Pythonの数値型は整数のint型と浮動小数点のfloat型, 複素数のcomplex型の3つだけ
float型で比較を行う場合はroundかmath.iscloseで丸め込みを行わないといけない
str型はイテラブルなので、forで回せるよ
strのformatはPython3.6以降はf"{変数}"でいいよ
配列
list型(可変配列)とtuple型(不変配列)がある
配列から値を取得する際に負の値を指定すると、配列の末尾から取得する
配列の末尾の値を取得したい場合はlst[-1]でいける
スライス
[切り出しを始めたいインデックス:切り出しを終えたい末尾のインデックス]
切り出しを終えたい末尾のインデックスの1つ前までがとられる
lst[0:1]なら、先頭の1つだけが取られる
tupleの宣言は(1, 2, 3),みたいな感じだけど()省略もできる、使うというよりタイポとかで間違えてコンマつけてタプル型になっちゃったとかを避けるようにしよう
tupleは値の変更不可だけどスライスはできるよ
辞書型
辞書型のキーは不変なオブジェクトのみ指定可能
文字列、数値、あとタプルは不変なので使える
forで回すときは特に指定しないとkeyだけ、dict.values()ならvalueだけ、dict.items()ならkey-valueセットで回せる
集合型
setとfrozensetの2つがある、frozensetは不変な集合
内包表記
いかのようなフォーマットで簡単にリストを作れる
code: 内包表記.py
また内包表記で使った変数のスコープはこの中に限定されるのも利点
リスト内包表記はネストもできるけど可読性考慮してほどほどにね
以下のようにフィルタもできる
code: フィルタ内包表記.py
内包表記でdictや、セットも作れる
code: その他の内包表記.py
# dict型
{ キー:値 for 変数 in イテラブルなオブジェクト }
# set型
{ セットの要素 for 変数 in イテラブルなオブジェクト }
その他のオブジェクト
可変オブジェクト: 定義後に値を変更できる
不変オブジェクト: 定義後に値を変更できない
コンテナオブジェクト: リストや辞書などの他のオブジェクトへの参照をもつオブジェクト、また必ずイテラブルなオブジェクトである
イテラブルなオブジェクト: forで回せる
呼び出し可能オブジェクト: 後ろに()をつけて呼び出せる