RE: A little morning puzzle
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 first sentence? 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 legal entity disclaimers, available at http://www.jpmorgan.com/pages/disclosures/email. -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
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 -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
Ian Kelly wrote: On Sat, Sep 22, 2012 at 9:44 PM, Dwight Hutto dwightdhu...@gmail.com 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~ -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
On Mon, Sep 24, 2012 at 5:18 PM, Ethan Furman et...@stoneleaf.us wrote: Ian Kelly wrote: On Sat, Sep 22, 2012 at 9:44 PM, Dwight Hutto dwightdhu...@gmail.com 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 -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
On Mon, Sep 24, 2012 at 4:07 PM, Dwight Hutto dwightdhu...@gmail.com 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. -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
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 -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
On Sep 23, 1:44 pm, Dwight Hutto dwightdhu...@gmail.com 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. -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
On Sat, Sep 22, 2012 at 9:44 PM, Dwight Hutto dwightdhu...@gmail.com 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. -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
On Thu, Sep 20, 2012 at 12:28 PM, Tobiah t...@tobiah.org wrote: Here is my solution: ** Incredibly convoluted and maximally less concise solution than other offerings. ** Might be better ones though. Unlikely. Zing! 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. -- Best Regards, David Hutto CEO: http://www.hitwebdevelopment.com -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
Here is my solution: ** Incredibly convoluted and maximally less concise solution than other offerings. ** Might be better ones though. Unlikely. Zing! -- http://mail.python.org/mailman/listinfo/python-list
A little morning puzzle
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? -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
Neal Becker 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? items = [ ... {1:2, 2:2}, ... {1:1, 2:2}, ... ] first = items[0].items() [key for key, value in first if all(item[key] == value for item in items)] [2] -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
Neal Becker writes: 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? Literally-ish: { key for key, val in ds[0].items() if all(val == d[key] for d in ds) } -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
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. -- Best Regards, David Hutto CEO: http://www.hitwebdevelopment.com -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
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. -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
On 19-09-12 13:17, Neal Becker 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? common_items = reduce(opereator.__and__, [set(dct.iteritems()) for dct in lst]) common_keys = set([item[0] for item in common_items]) -- Antoon Pardon -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
On Wed, Sep 19, 2012 at 8:01 AM, Dwight Hutto dwightdhu...@gmail.com 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? This one is better: 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 -- Best Regards, David Hutto CEO: http://www.hitwebdevelopment.com -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
On Wed, Sep 19, 2012 at 6:13 AM, Antoon Pardon antoon.par...@rece.vub.ac.be wrote: On 19-09-12 13:17, Neal Becker 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? common_items = reduce(opereator.__and__, [set(dct.iteritems()) for dct in lst]) common_keys = set([item[0] for item in common_items]) You can use dictviews for that: common_items = reduce(operator.__and__, (d.viewitems() for d in ds)) common_keys = [item[0] for item in common_items] -- http://mail.python.org/mailman/listinfo/python-list
Re: A little morning puzzle
Neal Becker ndbeck...@gmail.com writes: 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? Untested, and uses a few more comparisons than necessary: # ds = [dict1, dict2 ... ] d0 = ds[0] ks = set(k for k in d0 if all(d[k]==d0[k] for d in ds)) -- http://mail.python.org/mailman/listinfo/python-list