2013年11月29日金曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の9章(集合と辞書)、9.5(練習問題)、12.を解いてみる。

9.5(練習問題)、12.

コード(BBEdit)

sample.py

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

def dbConsistent(d):
    ks = list(d.keys())
    heading  = set(d[ks[0]].keys())
    for k in ks[1:]:
        if d[k].keys() != heading:
            return False
    return True

scientists1 = {
    'Jグドール': {
        '姓': 'ゴドール',
        '名': 'ジェーン',
        '生年': 1934,
        '没年': None,
        '注目': '霊長類研究者',
        '著作': ['In the Shadow of Man', 'The Chimpanzees of Gombe']
    },
    'Rフランクリン': {
        '姓': 'フランクリン',
        '名': 'ロザリンド',
        '生年': 1920,
        '没年': 1957,
        '注目': 'DNAの発見に貢献'
    },
    'Rカーソン': {
        '姓': 'カーソン',
        '名': 'レイチェル',
        '生年': 1907,
        '没年': 1964,
        '注目': 'DDTの毒外に注意を喚起',
        '著作': ['沈黙の春']
    }
}
scientists2 = {
    'Jグドール': {
        '姓': 'ゴドール',
        '名': 'ジェーン',
        '生年': 1934,
        '没年': None,
        '注目': '霊長類研究者',
        '著作': ['In the Shadow of Man', 'The Chimpanzees of Gombe']
    },
    'Rカーソン': {
        '姓': 'カーソン',
        '名': 'レイチェル',
        '生年': 1907,
        '没年': 1964,
        '注目': 'DDTの毒外に注意を喚起',
        '著作': ['沈黙の春']
    }
}
for scientists in [scientists1, scientists2]:
    print('database: {0}'.format(scientists))
    print('database consistent: {0}'.format(dbConsistent(scientists)))

入出力結果(Terminal)

$ ./sample.py
database: {'Rフランクリン': {'没年': 1957, '名': 'ロザリンド', '注目': 'DNAの発見に貢献', '生年': 1920, '姓': 'フランクリン'}, 'Jグドール': {'没年': None, '注目': '霊長類研究者', '姓': 'ゴドール', '名': 'ジェーン', '著作': ['In the Shadow of Man', 'The Chimpanzees of Gombe'], '生年': 1934}, 'Rカーソン': {'没年': 1964, '注目': 'DDTの毒外に注意を喚起', '姓': 'カーソン', '名': 'レイチェル', '著作': ['沈黙の春'], '生年': 1907}}
database consistent: False
database: {'Jグドール': {'没年': None, '注目': '霊長類研究者', '姓': 'ゴドール', '名': 'ジェーン', '著作': ['In the Shadow of Man', 'The Chimpanzees of Gombe'], '生年': 1934}, 'Rカーソン': {'没年': 1964, '注目': 'DDTの毒外に注意を喚起', '姓': 'カーソン', '名': 'レイチェル', '著作': ['沈黙の春'], '生年': 1907}}
database consistent: True
$

0 コメント:

コメントを投稿