Dict comprehension help
Peter Otten
__peter__ at web.de
Thu Dec 6 05:45:09 EST 2012
Joseph L. Casale wrote:
[Ian Kelly]
>> {k: v for d in my_list if d['key'] == value for (k, v) in d.items()}
>
> Ugh, had part of that backwards:) Nice!
>
>> However, since you say that all dicts have a unique value for
>> z['key'], you should never need to actually merge two dicts, correct?
>> In that case, why not just use a plain for loop to search for the
>> dict?
>
> The reason is that I need several of these in an init function and they
> stack up nicely where as the loops get unruly in length, but I don't
> disagree.
You could put the loop into a helper function, but if you are looping
through the same my_list more than once why not build a lookup table
my_dict = {d["key"]: d for d in my_list}
and then find the required dict with
my_dict[value]
More information about the Python-list
mailing list