2014年1月24日金曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7)のⅡ部(ビルトインオブジェクト)、4章(Pythonのビルトインオブジェクト)の練習問題、5.を解いてみる。

その他参考書籍

5.

コード(BBEdit)

module1.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

# 写像に属するオブジェクトはディクショナリ
# keyとして使えるのは不変性を持つオブジェクト(文字列、数値、タプル等)
d1 = {'a':1, 'b':2, 'c':3, 'd':4}
d2 = {1:'a', 2:'b', 3:'c', 4:'d'}
d3 = {(1, 2):'a', (3, 4):'b'}
try:
    # keyにミュータブルなオブジェクトを使っているので例外発生
    d4 = {[1, 2]:'a'}
except Exception as err:
    print(type(err), err, err.args)

for d in [d1, d2, d3]:
    print(d)

入出力結果(Terminal)

$ ./sample.py
<class 'TypeError'> unhashable type: 'list' ("unhashable type: 'list'",)
{'d': 4, 'a': 1, 'c': 3, 'b': 2}
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
{(1, 2): 'a', (3, 4): 'b'}
$

0 コメント:

コメントを投稿