To answer your question about working with dictionaries, you should note that Python 3.0 will include dict comprehensions:
>>> {i : chr(65+i) for i in range(4)}
In the mean time, you can do a quasi-dict comprehension this way:
>>> dict([(i, chr(65+i)) for i in range(4)])
Or as a more direct answer:
dict([(key, name) for key, name in some_dictionary.iteritems if name[-5:] != 'Smith'])