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

AltStyle によって変換されたページ (->オリジナル) /