Python を知る上で、たぶん重要な概念だと思ったので
記述して共有したいと思います^^
built-in オブジェクトに関する説明です。
- シーケンス
- 写像
という考え方があります。
シーケンスは、文字通り連番を表します。
写像は、私なりの言葉で説明すると「写真のような」、
もうちょっと言うと、切り離すことのできない(切り離すと意味のなくなってしまう)ものを指しています。
Pythonの文字列やリストは、シーケンスです。
つまり、以下のようなことができます。
文字列
【結果】
print u'まくらのそうし'[2:4]
らの
ですが、以下のような使い方はできません。
×
str = 'testing'
str[0] = 'a'
不変性のオブジェクトだからです。
リスト
【結果】
print [1, 2, 3, 4, 5, 6][5]
6
連番なので、シーケンスでスライスなどができます。
こちらは、可変性のオブジェクトなので、以下の操作が可能です。
array = [1, 2, 3, 4, 5, 6]
array[0] = 8
print array
[8, 2, 3, 4, 5, 6]
対して、
Pythonの辞書型は写像です。
key-value になっており、Perlなどで言うハッシュ、
PHPの連想配列にあたるのかと思います。
heights = {"john":182, "mike":173, "kevinn":190, "George":181, "Randy":184}
print heights["Randy"]
184
このような使い方ができます。
ですが、シーケンシャルにとりだすことはできません。
×
print heights["john":"kevinn"]
ですが、可変性なので要素の変更や追加ができます。
heights["mike"] = 175 # 2cm 伸びた!
今日はこのへんで^^