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] -- http://mail.python.org/mailman/listinfo/python-list