RE: Dict comprehension help

Discussion in 'Python' started by Peter Otten, Dec 6, 2012.

  1. Peter Otten

    Peter Otten Guest

    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]
     
    Peter Otten, Dec 6, 2012
    #1
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Vedran Furac(
    Replies:
    4
    Views:
    356
    Marc 'BlackJack' Rintsch
    Dec 19, 2008
  2. Joseph L. Casale

    Dict comprehension help

    Joseph L. Casale, Dec 6, 2012, in forum: Python
    Replies:
    0
    Views:
    136
    Joseph L. Casale
    Dec 6, 2012
  3. Ian Kelly

    Re: Dict comprehension help

    Ian Kelly, Dec 6, 2012, in forum: Python
    Replies:
    0
    Views:
    127
    Ian Kelly
    Dec 6, 2012
  4. Joseph L. Casale

    RE: Dict comprehension help

    Joseph L. Casale, Dec 6, 2012, in forum: Python
    Replies:
    0
    Views:
    127
    Joseph L. Casale
    Dec 6, 2012
  5. Joseph L. Casale

    RE: Dict comprehension help

    Joseph L. Casale, Dec 6, 2012, in forum: Python
    Replies:
    0
    Views:
    143
    Joseph L. Casale
    Dec 6, 2012
Loading...

Share This Page