You are here: Home > Dive Into Python > 組み込みのデータ型 | << >> | ||||
Dive Into PythonPython from novice to pro |
少しの間, 最初の Python プログラムに戻りましょう. しかしまずは少々寄り道をして, 辞書, タプル, リストについて学ばなければなりません (なんと!). もしあなたが Perl ハッカーなら, 辞書とリストについてはささっと読めるかもしれませんが, タプルについては注意を払った方が良いです.
Python の組み込みのデータ型の 1 つが辞書で, それを使ってキーと値の 1 対 1 の関係を定義します.
Python の辞書は Perl のハッシュに似ています. Perl では, ハッシュを値に持つ変数は常に % という文字から始まります. Python では変数名は任意であり, Python は内部的にデータ型を把握しています. |
Python の辞書は Java の Hashtable クラスのインスタンスに似ています. |
Python の辞書は Visual Basic の Scripting.Dictionary オブジェクトのインスタンスに似ています. |
>>> d = {"server":"mpilgrim", "database":"master"} >>> d {'server': 'mpilgrim', 'database': 'master'} >>> d["server"] 'mpilgrim' >>> d["database"] 'master' >>> d["mpilgrim"] Traceback (innermost last): File "<interactive input>", line 1, in ? KeyError: mpilgrim
>>> d {'server': 'mpilgrim', 'database': 'master'} >>> d["database"] = "pubs" >>> d {'server': 'mpilgrim', 'database': 'pubs'} >>> d["uid"] = "sa" >>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'}
新しい要素 (キー 'uid', 値 'sa') が真ん中に現れているのに注意しましょう. 実際, 最初の例で要素が順番どおりに現れたのは単なる偶然ですし, 同様に今順番どおりでなく現れているのも単なる偶然です.
辞書には要素間の順序という考えはありません. なので, 要素の“順序が狂った”と言うのは正しくありません. ただ単に順序付けされていないだけです. (例えばキーによるアルファベット順のように) ある特定の順序で辞書の要素に何度もアクセスしたい場合に, この重要な違いは悩ましいものかもしれません. そうする方法は実際にはあるのですが, 辞書に組み込まれてはいません. |
辞書を使っているときには, 辞書のキーが大文字小文字を区別することに気を付けなくてはいけません.
>>> d = {} >>> d["key"] = "value" >>> d["key"] = "other value" >>> d {'key': 'other value'} >>> d["Key"] = "third value" >>> d {'Key': 'third value', 'key': 'other value'}
>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'} >>> d["retrycount"] = 3 >>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3} >>> d[42] = "douglas" >>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3}
>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3} >>> del d[42] >>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3} >>> d.clear() >>> d {}
<< モジュールのテスト |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
リストの紹介 >> |