Re: A little morning puzzle

Discussion in 'Python' started by Peter Otten, Sep 19, 2012.

  1. Peter Otten

    Peter Otten Guest

    Dwight Hutto wrote:

    >> I have a list of dictionaries. They all have the same keys. I want to
    >> find the
    >> set of keys where all the dictionaries have the same values.
    >> Suggestions?

    >
    > Here is my solution:
    >
    >
    > a = {}
    > a['dict'] = 1
    >
    > b = {}
    > b['dict'] = 2
    >
    > c = {}
    > c['dict'] = 1
    >
    > d = {}
    > d['dict'] = 3
    >
    > e = {}
    > e['dict'] = 1
    >
    >
    > x = [a,b,c,d,e]
    > collection_count = 0
    >
    > for dict_key_search in x:
    > if dict_key_search['dict'] == 1:
    > collection_count += 1
    > print dict_key_search['dict']
    >
    >
    > Might be better ones though.


    Unlikely.
     
    Peter Otten, Sep 19, 2012
    #1
    1. Advertising

  2. Peter Otten

    Tobiah Guest


    >> Here is my solution:


    >> ** Incredibly convoluted and maximally less concise solution
    >> than other offerings. **


    >> Might be better ones though.

    >
    > Unlikely.


    Zing!
     
    Tobiah, Sep 20, 2012
    #2
    1. Advertising

  3. Peter Otten

    alex23 Guest

    On Sep 23, 1:44 pm, Dwight Hutto <> wrote:
    > Just because you can use a function, and make it look easier, doesn't
    > mean the function you used had less code than mine, so if you look at
    > the whole of what you used to make it simpler, mine was on point.


    Word of advice: when we use "simpler" around these parts we're
    referring to cognitive burden on the end developer and not the actual
    amount of interpreter/library code utilised to solve the problem.

    Ergo: 'enumerate(<some_list>)' is the correct suggestion over manually
    maintaining your own index, despite it ostensibly being "more" code
    due to its implementation.
     
    alex23, Sep 24, 2012
    #3
  4. Peter Otten

    Ian Kelly Guest

    On Sat, Sep 22, 2012 at 9:44 PM, Dwight Hutto <> wrote:
    > Why don't you all look at the code(python and C), and tell me how much
    > code it took to write the functions the other's examples made use of
    > to complete the task.
    >
    > Just because you can use a function, and make it look easier, doesn't
    > mean the function you used had less code than mine, so if you look at
    > the whole of what you used to make it simpler, mine was on point.


    I understood the sarcastic comments (the first one, at least) to be
    referring to your solution as bad not due to complexity (I actually
    thought it was quite simple), but because it does not solve the
    problem as stated. The problem posed by the OP was to find a set of
    common keys that are associated with the same values in each dict.
    Your solution takes only one predetermined key-value pair and counts
    how many times it occurs in the dicts, which isn't even close to what
    was requested. With your comment of "Might be better ones, though", I
    actually thought that you were aware of this and were being
    intentionally satirical.
     
    Ian Kelly, Sep 24, 2012
    #4
  5. Peter Otten

    Ethan Furman Guest

    Ian Kelly wrote:
    > On Sat, Sep 22, 2012 at 9:44 PM, Dwight Hutto <> wrote:
    >> Why don't you all look at the code(python and C), and tell me how much
    >> code it took to write the functions the other's examples made use of
    >> to complete the task.
    >>
    >> Just because you can use a function, and make it look easier, doesn't
    >> mean the function you used had less code than mine, so if you look at
    >> the whole of what you used to make it simpler, mine was on point.

    >
    > I understood the sarcastic comments (the first one, at least) to be
    > referring to your solution as bad not due to complexity (I actually
    > thought it was quite simple), but because it does not solve the
    > problem as stated. The problem posed by the OP was to find a set of
    > common keys that are associated with the same values in each dict.
    > Your solution takes only one predetermined key-value pair and counts
    > how many times it occurs in the dicts, which isn't even close to what
    > was requested. With your comment of "Might be better ones, though", I
    > actually thought that you were aware of this and were being
    > intentionally satirical.


    Unlikely.

    ~Ethan~
     
    Ethan Furman, Sep 24, 2012
    #5
  6. Peter Otten

    Dwight Hutto Guest

    > Ergo: 'enumerate(<some_list>)' is the correct suggestion over manually
    > maintaining your own index, despite it ostensibly being "more" code
    > due to its implementation.


    But, therefore, that doesn't mean that the coder can just USE a
    function, and not be able to design it themselves. So 'correct
    suggestion' is a moot point.

    --
    Best Regards,
    David Hutto
    CEO: http://www.hitwebdevelopment.com
     
    Dwight Hutto, Sep 24, 2012
    #6
  7. Peter Otten

    Dwight Hutto Guest

    On Mon, Sep 24, 2012 at 5:18 PM, Ethan Furman <> wrote:
    > Ian Kelly wrote:
    >>
    >> On Sat, Sep 22, 2012 at 9:44 PM, Dwight Hutto <>
    >> wrote:
    >>>
    >>> Why don't you all look at the code(python and C), and tell me how much
    >>> code it took to write the functions the other's examples made use of
    >>> to complete the task.n in or register.
    >>>
    >>> Just because you can use a function, and make it look easier, doesn't
    >>> mean the function you used had less code than mine, so if you look at
    >>> the whole of what you used to make it simpler, mine was on point.

    >>
    >>
    >> I understood the sarcastic comments (the first one, at least) to be
    >> referring to your solution as bad not due to complexity (I actually
    >> thought it was quite simple), but because it does not solve the
    >> problem as stated. The problem posed by the OP was to find a set of
    >> common keys that are associated with the same values in each dict.


    >> Your solution takes only one predetermined key-value pair and counts
    >> how many times it occurs in the dicts, which isn't even close to what


    They stated:

    I have a list of dictionaries. They all have the same keys. I want to find the
    set of keys where all the dictionaries have the same values. Suggestions?

    No, to me it meant to find similar values in several dicts with the
    same key, and value. So I created several dicts, and some with the
    same key and value, and showed the matches.

    The OP can comment as to whether that is the correct interpretation of
    the situation.


    >> was requested. With your comment of "Might be better ones, though", I
    >> actually thought that you were aware of this and were being
    >> intentionally satirical.


    I am. I just write out the algorithm as I understand the OP to want
    it, to give my version of the example.

    --
    Best Regards,
    David Hutto
    CEO: http://www.hitwebdevelopment.com
     
    Dwight Hutto, Sep 24, 2012
    #7
  8. Peter Otten

    Ian Kelly Guest

    On Mon, Sep 24, 2012 at 4:07 PM, Dwight Hutto <> wrote:
    > They stated:
    >
    > I have a list of dictionaries. They all have the same keys. I want to find the
    > set of keys where all the dictionaries have the same values. Suggestions?
    >
    > No, to me it meant to find similar values in several dicts with the
    > same key, and value. So I created several dicts, and some with the
    > same key and value, and showed the matches.


    Well, to me at least it is clear that when the OP writes "I want to
    find the *set* of *keys*..." (emphasis added), then setting aside the
    rest of the problem statement, the result of the algorithm should be a
    set (or at least something set-like), and the contents of the set
    should be keys. The posted code produces neither a set nor any keys;
    it prints out the same predetermined non-key value multiple times.
     
    Ian Kelly, Sep 25, 2012
    #8
  9. Peter Otten

    Dwight Hutto Guest

    The posted code produces neither a set nor any keys;
    > it prints out the same predetermined non-key value multiple times.


    This shows multiple dicts, with the same keys, and shows different
    values, and some with the same, and that is, in my opinion what the OP
    asked for:

    a = {}
    a['dict'] = 1

    b = {}
    b['dict'] = 2

    c = {}
    c['dict'] = 1

    d = {}
    d['dict'] = 3

    e = {}
    e['dict'] = 1


    x = [a,b,c,d,e]
    count = 0
    collection_count = 0
    search_variable = 1
    for dict_key_search in x:
    if dict_key_search['dict'] == search_variable:
    print "Match count found: #%i = %i" % (count,search_variable)
    collection_count += 1
    count += 1
    print collection_count



    The OP can jump in and tell me to alter the example, if they want to.




    --
    Best Regards,
    David Hutto
    CEO: http://www.hitwebdevelopment.com
     
    Dwight Hutto, Sep 25, 2012
    #9
  10. Dwight Hutto wrote:

    > > Ergo: 'enumerate(<some_list>)' is the correct suggestion over manually
    > > maintaining your own index, despite it ostensibly being "more" code
    > > due to its implementation.

    >
    > But, therefore, that doesn't mean that the coder can just USE a
    >function, and not be able to design it themselves. So 'correct
    > suggestion' is a moot point.
    >


    Can you rephrase your firstsentence? I am not sure what
    you mean.
    This email is confidential and subject to important disclaimers and
    conditions including on offers for the purchase or sale of
    securities, accuracy and completeness of information, viruses,
    confidentiality, legal privilege, and legalentity disclaimers,
    available at http://www.jpmorgan.com/pages/disclosures/email.
     
    Prasad, Ramit, Sep 27, 2012
    #10
    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. Neal Becker

    A little morning puzzle

    Neal Becker, Sep 19, 2012, in forum: Python
    Replies:
    2
    Views:
    181
    Paul Rubin
    Sep 19, 2012
  2. Peter Otten

    Re: A little morning puzzle

    Peter Otten, Sep 19, 2012, in forum: Python
    Replies:
    0
    Views:
    184
    Peter Otten
    Sep 19, 2012
  3. Dwight Hutto

    Re: A little morning puzzle

    Dwight Hutto, Sep 19, 2012, in forum: Python
    Replies:
    0
    Views:
    159
    Dwight Hutto
    Sep 19, 2012
  4. Antoon Pardon

    Re: A little morning puzzle

    Antoon Pardon, Sep 19, 2012, in forum: Python
    Replies:
    0
    Views:
    174
    Antoon Pardon
    Sep 19, 2012
  5. Dwight Hutto

    Re: A little morning puzzle

    Dwight Hutto, Sep 19, 2012, in forum: Python
    Replies:
    0
    Views:
    164
    Dwight Hutto
    Sep 19, 2012
Loading...

Share This Page