2013年11月27日水曜日

開発環境

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

9.5(練習問題)、10.

コード(BBEdit)

sample.py

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

import random

def dictIntersect(d1, d2):
    d = {}
    for k in d1:
        if k in d2:
            d[k] = d1[k]
    return d

for n in range(10):
    d1 = dict(map(lambda x: (chr(random.randint(97, 122)), 
                             random.randint(0, 9)),
                             range(random.randint(10, 20))))
    d2 = dict(map(lambda x: (chr(random.randint(97, 122)),
                             random.randint(0, 9)),
                             range(random.randint(10, 20))))
    print('{0:21s}: {1}'.format('d1', d1))
    print('{0:21s}: {1}'.format('d2', d2))
    print('dictIntersect(d1, d2): {0}'.format(dictIntersect(d1, d2)))

入出力結果(Terminal)

$ ./sample.py
d1                   : {'x': 6, 'i': 1, 'n': 3, 'q': 7, 'a': 5, 'r': 0, 'c': 8, 'e': 7, 'v': 6, 'g': 0}
d2                   : {'j': 0, 'n': 0, 'o': 0, 'q': 6, 'c': 8, 't': 6, 'u': 3, 'v': 3}
dictIntersect(d1, d2): {'q': 7, 'c': 8, 'v': 6, 'n': 3}
d1                   : {'x': 1, 'f': 0, 'd': 4, 'g': 3, 't': 2, 'v': 9, 'w': 9}
d2                   : {'x': 4, 'p': 9, 'q': 0, 's': 7, 't': 5, 'u': 0, 'v': 4, 'w': 4, 'j': 2, 'n': 3, 'o': 9, 'g': 5}
dictIntersect(d1, d2): {'x': 1, 'w': 9, 't': 2, 'v': 9, 'g': 3}
d1                   : {'h': 0, 'y': 2, 'z': 3, 'k': 1, 'l': 2, 'o': 7, 'a': 4, 't': 6, 'j': 1, 'f': 0, 'g': 1}
d2                   : {'z': 7, 'q': 2, 's': 5, 'v': 1, 'j': 4, 'k': 6, 'm': 1, 'n': 3, 'o': 4, 'a': 3, 'e': 7, 'f': 4, 'g': 9}
dictIntersect(d1, d2): {'z': 3, 'k': 1, 'o': 7, 'a': 4, 'j': 1, 'f': 0, 'g': 1}
d1                   : {'x': 0, 'p': 8, 'q': 2, 'r': 6, 's': 4, 'h': 1, 'k': 2, 'm': 7, 'o': 2, 'b': 8, 'c': 4, 'e': 2}
d2                   : {'x': 8, 'z': 4, 'p': 8, 's': 1, 't': 7, 'v': 4, 'h': 1, 'j': 3, 'k': 9, 'l': 1, 'm': 2, 'o': 5, 'b': 5, 'g': 4}
dictIntersect(d1, d2): {'x': 0, 'h': 1, 'k': 2, 'm': 7, 'o': 2, 'p': 8, 'b': 8, 's': 4}
d1                   : {'z': 5, 'q': 2, 's': 5, 't': 1, 'u': 1, 'w': 6, 'j': 7, 'l': 7, 'a': 4, 'b': 6, 'c': 8, 'e': 1, 'f': 1, 'g': 6}
d2                   : {'x': 9, 'p': 8, 'r': 7, 's': 9, 'u': 2, 'v': 5, 'w': 9, 'i': 8, 'j': 1, 'k': 5, 'm': 2, 'n': 9, 'o': 4, 'a': 4}
dictIntersect(d1, d2): {'a': 4, 'j': 7, 's': 5, 'u': 1, 'w': 6}
d1                   : {'z': 3, 'q': 2, 's': 4, 't': 3, 'u': 4, 'w': 1, 'h': 0, 'j': 4, 'n': 7, 'o': 2, 'c': 3, 'd': 6, 'g': 6}
d2                   : {'y': 2, 'p': 4, 'r': 3, 's': 8, 't': 5, 'v': 9, 'h': 8, 'j': 6, 'l': 9, 'n': 4, 'o': 3, 'd': 8, 'g': 2}
dictIntersect(d1, d2): {'h': 0, 'j': 4, 'n': 7, 'o': 2, 'd': 6, 's': 4, 't': 3, 'g': 6}
d1                   : {'y': 4, 'z': 9, 'q': 8, 'r': 4, 's': 3, 'u': 4, 'v': 3, 'h': 8, 'k': 9, 'm': 3, 'c': 1, 'd': 0, 'e': 9, 'f': 4, 'g': 9}
d2                   : {'x': 3, 'z': 9, 'p': 9, 'r': 8, 't': 8, 'v': 6, 'w': 9, 'h': 5, 'j': 4, 'n': 4, 'a': 2, 'e': 6, 'f': 8}
dictIntersect(d1, d2): {'h': 8, 'z': 9, 'f': 4, 'r': 4, 'e': 9, 'v': 3}
d1                   : {'x': 5, 'i': 6, 'j': 0, 'm': 5, 'a': 0, 'd': 5, 's': 4, 't': 8, 'e': 2, 'v': 0, 'g': 5}
d2                   : {'x': 3, 'y': 3, 'z': 3, 'p': 1, 'r': 5, 'v': 0, 'h': 0, 'j': 1, 'n': 3, 'o': 3, 'b': 0, 'c': 9, 'e': 7, 'g': 5}
dictIntersect(d1, d2): {'x': 5, 'j': 0, 'e': 2, 'v': 0, 'g': 5}
d1                   : {'z': 0, 'p': 4, 'q': 2, 'r': 2, 's': 4, 'u': 5, 'h': 5, 'i': 4, 'l': 9, 'm': 6, 'n': 6, 'b': 7, 'c': 9, 'd': 4, 'g': 5}
d2                   : {'y': 4, 'z': 6, 'q': 6, 'w': 9, 'i': 9, 'l': 1, 'a': 6, 'b': 7, 'c': 6, 'e': 8, 'f': 6, 'g': 2}
dictIntersect(d1, d2): {'i': 4, 'z': 0, 'l': 9, 'q': 2, 'b': 7, 'c': 9, 'g': 5}
d1                   : {'x': 8, 'y': 2, 'r': 0, 's': 3, 't': 2, 'u': 6, 'h': 0, 'j': 1, 'k': 3, 'l': 6, 'c': 5, 'd': 8}
d2                   : {'x': 5, 'y': 8, 'q': 7, 's': 4, 't': 6, 'h': 7, 'i': 7, 'm': 1, 'a': 7, 'b': 5, 'c': 4, 'd': 2, 'f': 8, 'g': 7}
dictIntersect(d1, d2): {'x': 8, 'y': 2, 'c': 5, 'h': 0, 'd': 8, 's': 3, 't': 2}
$

0 コメント:

コメントを投稿