スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
.-- -- スポンサー広告 comment(-) trackback(-)

Pythonメモ書き:ディクショナリ使用上注意点

ディクショナリ使用上の注意点

•シーケンスと同じ操作は出来ない。

•存在しないキーを指定して値を代入すると、要素が追加される。

•キーは文字列でなくてもよい。

•ディクショナリをリストのように使う。
→キーを整数にすれば、表面上はリストとほぼ変わらない。

•スペース行列(多次元配列)の表現
→空白部分を仮想的につくれる。
→ただし、空白箇所のキーは実際に存在しないので、アクセスしようとするとエラーが生じる。
>>>matrix ={}
>>>matrix[(2,3,4)] = 88
>>>matrix[(5,6,7)] = 95
>>>
>>>X=2; Y=3; Z=4
>>>matrix[(X, Y, Z)]
88
>>>matrix
{(2,3,4):88, (5,6,7):95}
>>>
>>>matrix[(2,4,5)]
Traceback (most recent call last):
File "", line 1, in
KeyError: (2,4,5)
>>>


•「キーが存在しない」というエラーを防ぐ
→少なくとも3種類のアプローチがある。

>>>if matrix.has_key((2,4,5)):    #アクセス前にキーの存在を確認
...  print matrix[(2,4,5)]
...else:
...  print 0
...
0
>>>
>>>
>>>try:
...  print matrix[(2,4,5)]     #tryステートメント使用
...except KeyError:         #例外への対処
...  print 0
...
0
>>>
>>>
>>>matrix.get((2,3,4), 0)    #キーが存在すれば値を抽出してリターン
88
>>>matrix.get((2,4,5), 0)    #キーが存在しなければデフォルト値を指定


•ディクショナリの作成方法

○ディクショナリをどのようなものにするか、予め明確になっている場合
{'name':'emi', 'age':25}     #リテラル

○1フィールドずつディクショナリを作る必要がある場合
D = {}              #キーを指定して値を代入
D['name'] = 'emi'
D['age'] = 25

○キーが全て文字列である場合
dict(name='emi', age=25)     #キーワード引数を使う

○キーと値をシーケンスにしたいときに便利
dict([('name', 'mel'), ('age', 25)])  #キーと値のタプルを使う


とりあえず、リテラルと値の代入が出来ればPython初心者のうちはOK

それ以上が必要になってくるのかは。。。
スポンサーサイト
.30 2010 Python:ディクショナリ comment0 trackback0

comment

post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

trackback

trackbackURL:http://emiandkosuke.blog29.fc2.com/tb.php/19-0f5c1c0a

プロフィール

emi

Author:emi
日々、コンピューターとにらめっこしていた2010。
公の仕事に就くことを目指して教科書とにらめっこ2011,spring。
はたして2012は・・・

最新トラックバック

検索フォーム

ブロとも申請フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。