LoginSignup
4
3

More than 5 years have passed since last update.

シーケンスと写像

Posted at

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 伸びた!

今日はこのへんで^^

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3