On Mon, 11 Aug 2008 00:27:46 -0700, Brandon wrote: > This should be pretty simple: I have two dictionaries, foo and bar. I > am certain that all keys in bar belong to foo as well, but I also know > that not all keys in foo exist in bar. All the keys in both foo and bar > are tuples (in the bigram form ('word1', 'word2)). I have to prime foo > so that each key has a value of 1.
The old way: foo = {} for key in all_the_keys: foo[key] = 1 The new way: foo = dict.fromkeys(all_the_keys, 1) > The values for the keys in bar are > variable integers. All I want to do is run a loop through foo, match > any of its keys that also exist in bar, and add those key's values in > bar to the preexisting value of 1 for the corresponding key in foo. So > in the end the key,value pairs in foo won't necessarily be, for example, > 'tuple1: 1', but also 'tuple2: 31' if tuple2 had a value of 30 in bar. Harder to say what you want to do than to just do it. The long way: for key in foo: if bar.has_key(key): foo[key] = foo[key] + bar[key] Probably a better way: for key, value in foo.iteritems(): foo[key] = value + bar.get(key, 0) You should also investigate the update method of dictionaries. From an interactive session, type: help({}.update) then the Enter key. -- Steven -- http://mail.python.org/mailman/listinfo/python-list