compare dictionary values

rbt rbt at athop1.ath.vt.edu
Fri Dec 30 16:27:30 EST 2005


Marc 'BlackJack' Rintsch wrote:
> In <dp4124$pki$1 at solaris.cc.vt.edu>, 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.



More information about the Python-list mailing list