I had a broken function that should either wring all items through a function, or only run items that pass True
from a qualifying function, if a qualifying function is given
def transform_dictionary(dictionary, callback, qualification_callback=None):
return {k: callback(v) if qualification_callback and qualification_callback(v) else v for k, v in dictionary.items()}
It was broke because it required the second function to transform. I now have
def transform_dictionary(dictionary, callback, qualification_callback=None):
if qualification_callback:
return {k: callback(v) if qualification_callback(v) else v for k, v in dictionary.items()}
else:
return {k: callback(v) for k, v in dictionary.items()}
which is ugly but works. Can I do this in one line, where I either run all values through the callback, or check for truth in the second callback first and only run things that pass? Thank you