爬虫類嫌いのPython日記

爬虫類が大の苦手の筆者が、Pythonに挑戦。他にも、RubyやObjective-C、Google Appengine、Herokuなど色々とチャレンジしています。

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']                                      # 存在しないキーを指定するとエラー
・・・エラーメッセージが表示される・・・

PHPで言う所の、連想配列ですね。

タプル

タプルは、リストの不変性版と言った感じでしょうか?
不変性を持つ配列と言う事で、値の安全性を保証できると言う点が嬉しいですね。

>>>T = (1, 2, 3, 4, 5)   # 5つの要素を持つタプル
>>>len(T)                # 要素の数を返す
5
>>>T[0]                  # インデクシング
1

>>>T[0] = 6              # 不変性なので変更できない
・・・エラーメッセージが表示される・・・

リスト、ディクショナリ、タプルを上手く使えば、可読性が高く、安全性の高いコードが書けそうですね。