Pythonのビルトインオブジェクト(2)
リスト
リストは、他の言語で言う所の配列ですね。良く使うオブジェクトになると思います。
数値や文字列と異なり可変性のシーケンスに分類されます。
>>>L = [123, 'hoge', 1.23] # 3つの要素からなるリスト >>>len(L) # 要素の数を返す 3 >>>L[0] # インデクシング 123 >>>L + ['a', 'b', 'c'] # 連結すると新たなリストオブジェクトが返される [123, 'hoge', 1.23, 'a', 'b', 'c'] >>>L [123, 'hoge', 1.23] # 元のリストは変更されていない
元のリストが変更されていないと言うのがポイント。
Rubyなどでは、当たり前のことなんですけど、PHPだと、変更されちゃいますからね。
どれだけ、悩まされたか……
今となっては、懐かしい思い出です。
ディクショナリ
ディクショナリとは、シーケンスではなく写像と言う分類になります。
リスト同様、可変性を持つオブジェクトです。
>>>D = {'name': 'mike', 'age': 3, 'type': 'cat'} # キーを指定してディクショナリを作成 >>>D {'name': 'mike', 'type': 'cat', 'age': 3,} # 並び順が作成時と異なる場合がある >>>D['name'] # キーを指定 mike >>>D = {} # 空のディクショナリを作成 >>>D['name': 'mike'] # 存在しないキーを指定して値を代入 >>>D['age': 3] >>>D['type': 'cat'] >>>D {'name': 'mike', 'type': 'cat', 'age': 3,} # 上記の例と同じ事 >>>D['color'] # 存在しないキーを指定するとエラー ・・・エラーメッセージが表示される・・・
タプル
タプルは、リストの不変性版と言った感じでしょうか?
不変性を持つ配列と言う事で、値の安全性を保証できると言う点が嬉しいですね。
>>>T = (1, 2, 3, 4, 5) # 5つの要素を持つタプル >>>len(T) # 要素の数を返す 5 >>>T[0] # インデクシング 1 >>>T[0] = 6 # 不変性なので変更できない ・・・エラーメッセージが表示される・・・
リスト、ディクショナリ、タプルを上手く使えば、可読性が高く、安全性の高いコードが書けそうですね。