Re: compare dictionary values



Marc 'BlackJack' Rintsch wrote:
In <dp4124$pki$1@xxxxxxxxxxxxxxxxx>, rbt wrote:

What's a good way to compare values in dictionaries?

Look them up and then compare!? ;-)

I want to find values that have changed. I look for new keys by doing this:

new = [k for k in file_info_cur.iterkeys() if k not in file_info_old.iterkeys()]
if new == []:
print new, "No new files."
else:
print new, "New file(s)!!!"


My key-values pairs are filepaths and their modify times. I want to identify files that have been updated or added since the script last ran.

This looks up each `key` from the `new` dictionary and compares the value with the `old` one. If it's not equal or the key is not present in `old` the key is appended to the `result`::

 def new_and_changed_keys(old, new):
     result = list()
     for (key, value) in new:
         try:
             if old[key] != value:
                 result.append(key)
         except KeyError:
             result.append(key)
     return result

Ciao,
	Marc 'BlackJack' Rintsch

Thanks Marc! I changed this line:

for (key, value) in new:

To this:

for (key, value) in new.iteritems():

And, it works great. Thanks again.
.



Relevant Pages