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