[Chicago] Question about accessing dictionary's elements.
Jimmy Calahorrano
jcalahor at yahoo.com
Sat Sep 19 18:22:14 CEST 2015
oops i mean, missleads not defeats :)
Enviado desde Yahoo Mail en Android
De:"Jimmy Calahorrano" <jcalahor at yahoo.com>
Fecha:sáb, sep 19, AM a 11:20 AM
Asunto:Re: [Chicago] Question about accessing dictionary's elements.
agreed that logic defeats the usage of dicts, maybe a binary tree search is what he is looking for.
Enviado desde Yahoo Mail en Android
De:"William E. S. Clemens" <wesclemens at gmail.com>
Fecha:sáb, sep 19, AM a 10:46 AM
Asunto:Re: [Chicago] Question about accessing dictionary's elements.
I would agree that Jimmy's solution is the correct one for doing this. But I would avoid setting up your data structure in this manner. A dict is a hash table and it is be extremely fast a looking up a value by key.
You are building an array of the keys to linearly search. This operation is going to be slow and will not scale well. If you described what this data is and what your trying todo with it. I maybe able to suggest a better data structure for storing and accessing it.
--
William Clemens
Phone: 847.485.9455
E-mail: wesclemens at gmail.com
On Sat, Sep 19, 2015 at 10:02 AM, Lewit, Douglas <d-lewit at neiu.edu> wrote:
I love it! Thanks Jim.
On Sat, Sep 19, 2015 at 8:09 AM, Jimmy Calahorrano via Chicago <chicago at python.org> wrote:
is more elegant but not sure if is the best option:
[A[key] for key in A.keys() if key[0] == 1]
--------------------------------------------
On Sat, 9/19/15, Lewit, Douglas <d-lewit at neiu.edu> wrote:
Subject: [Chicago] Question about accessing dictionary's elements.
To: "The Chicago Python Users Group" <chicago at python.org>
Date: Saturday, September 19, 2015, 7:43 AM
Hi
guys,
I have a problem and not
sure how to address it. Let's say I have a simple
dictionary such as.
A = { (1, 2) : 10, (1, 3) :
15, (1, 4) : 50, (2, 0) : 2, (2, 5) : 8, (2, 12) : 19
}
I would like to access any
and all tuples whose first value is 1 or let's say 2.
How would I do that?
So what I'm trying to
go for is:
A[(1, placeholder for any
int value)] thus giving me all the values that correspond to
(1, #). Not really sure how to go about this. Unless....
I suppose I could do something like
this:
for key in
A: if list(key)[0]
== 1:
print(A[key]) #### Or whatever I want to do with the
number.
Hmmm.... maybe that would
work, but is there a more "elegant" way to do
this? Is there any "pattern matching" in Python
so that I could do this:
A[(1, #placeholder for any
int )]
Hey, thanks for your
help.
By the way, has anyone seen
the book LEARNING PYTHON by Mark Lutz? Wow! Full of
great information, but the book is HUGE!!! I'll have
serious back problems if I carry that thing around in my
backpack! There's something about small, lightweight
books that I really prefer. (And then there's eBooks,
but that's a horse of a different color in my
opinion.)
Have a great weekend and
I'm looking forward to some ideas on the above
problem. Thanks in advance.
Best,
Douglas
L.
-----Inline Attachment Follows-----
_______________________________________________
Chicago mailing list
Chicago at python.org
https://mail.python.org/mailman/listinfo/chicago
_______________________________________________
Chicago mailing list
Chicago at python.org
https://mail.python.org/mailman/listinfo/chicago
_______________________________________________
Chicago mailing list
Chicago at python.org
https://mail.python.org/mailman/listinfo/chicago
_______________________________________________
Chicago mailing list
Chicago at python.org
https://mail.python.org/mailman/listinfo/chicago
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/chicago/attachments/20150919/4b6e6b72/attachment-0003.html>
More information about the Chicago
mailing list