compare dictionary values

R

rbt

What's a good way to compare values in dictionaries? 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.

Thanks,
rbt
 
M

Marc 'BlackJack' Rintsch

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
 
R

rbt

Marc said:
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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

Forum statistics

Threads
474,274
Messages
2,571,372
Members
48,064
Latest member
alibsskemoSeAve

Latest Threads

Top