# more_about_dictionaries.py
# MIT OCW 6.189 Homework 3
# http://o...content-available-to-author-only...t.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2011/assignments/MIT6_189IAP11_hw3.pdf
# Written for Python 3.x
# Mechanical MOOC
# Glenn Richard
# July 20, 2013
# Exercise 3.4 - More About Dictionaries
NAMES = ['Alice', 'Bob', 'Cathy', 'Dan', 'Ed', 'Frank',
'Gary', 'Helen', 'Irene', 'Jack', 'Kelly', 'Larry']
AGES = [20, 21, 18, 18, 19, 20, 20, 19, 19, 19, 22, 19]
def combine_lists(names_list, ages_list):
return {k: v for k, v in zip(names_list, ages_list)}
def people(age):
return [name for name in people_dict.keys() if people_dict[name] == age]
people_dict = combine_lists(NAMES, AGES)
print('Dan' in people(18) and 'Cathy' in people(18))
print('Ed' in people(19) and 'Helen' in people(19) and 'Irene' in people(19) and 'Jack' in people(19) and 'Larry'in people(19))
print('Alice' in people(20) and 'Frank' in people(20) and 'Gary' in people(20))
print(people(21) == ['Bob'])
print(people(22) == ['Kelly'])
print(people(23) == [])
IyBtb3JlX2Fib3V0X2RpY3Rpb25hcmllcy5weQojIE1JVCBPQ1cgNi4xODkgSG9tZXdvcmsgMwojIGh0dHA6Ly9vLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi50LmVkdS9jb3Vyc2VzL2VsZWN0cmljYWwtZW5naW5lZXJpbmctYW5kLWNvbXB1dGVyLXNjaWVuY2UvNi0xODktYS1nZW50bGUtaW50cm9kdWN0aW9uLXRvLXByb2dyYW1taW5nLXVzaW5nLXB5dGhvbi1qYW51YXJ5LWlhcC0yMDExL2Fzc2lnbm1lbnRzL01JVDZfMTg5SUFQMTFfaHczLnBkZgojIFdyaXR0ZW4gZm9yIFB5dGhvbiAzLngKIyBNZWNoYW5pY2FsIE1PT0MKIyBHbGVubiBSaWNoYXJkCiMgSnVseSAyMCwgMjAxMwojIEV4ZXJjaXNlIDMuNCAtIE1vcmUgQWJvdXQgRGljdGlvbmFyaWVzCk5BTUVTID0gWydBbGljZScsICdCb2InLCAnQ2F0aHknLCAnRGFuJywgJ0VkJywgJ0ZyYW5rJywKJ0dhcnknLCAnSGVsZW4nLCAnSXJlbmUnLCAnSmFjaycsICdLZWxseScsICdMYXJyeSddCkFHRVMgPSBbMjAsIDIxLCAxOCwgMTgsIDE5LCAyMCwgMjAsIDE5LCAxOSwgMTksIDIyLCAxOV0KCmRlZiBjb21iaW5lX2xpc3RzKG5hbWVzX2xpc3QsIGFnZXNfbGlzdCk6CiAgICByZXR1cm4ge2s6IHYgZm9yIGssIHYgaW4gemlwKG5hbWVzX2xpc3QsIGFnZXNfbGlzdCl9CgpkZWYgcGVvcGxlKGFnZSk6CiAgICByZXR1cm4gW25hbWUgZm9yIG5hbWUgaW4gcGVvcGxlX2RpY3Qua2V5cygpIGlmIHBlb3BsZV9kaWN0W25hbWVdID09IGFnZV0KCnBlb3BsZV9kaWN0ID0gY29tYmluZV9saXN0cyhOQU1FUywgQUdFUykKCnByaW50KCdEYW4nIGluIHBlb3BsZSgxOCkgYW5kICdDYXRoeScgaW4gcGVvcGxlKDE4KSkKcHJpbnQoJ0VkJyBpbiBwZW9wbGUoMTkpIGFuZCAnSGVsZW4nIGluIHBlb3BsZSgxOSkgYW5kICdJcmVuZScgaW4gcGVvcGxlKDE5KSBhbmQgJ0phY2snIGluIHBlb3BsZSgxOSkgYW5kICdMYXJyeSdpbiBwZW9wbGUoMTkpKQpwcmludCgnQWxpY2UnIGluIHBlb3BsZSgyMCkgYW5kICdGcmFuaycgaW4gcGVvcGxlKDIwKSBhbmQgJ0dhcnknIGluIHBlb3BsZSgyMCkpCnByaW50KHBlb3BsZSgyMSkgPT0gWydCb2InXSkKcHJpbnQocGVvcGxlKDIyKSA9PSBbJ0tlbGx5J10pCnByaW50KHBlb3BsZSgyMykgPT0gW10pCg==