[Tutor] simple list query
Gonçalo Rodrigues
op73418 at mail.telepac.pt
Mon Jan 3 13:44:07 CET 2005
Patrick Hall wrote:
> Hi Dave,
>
>
>>I have a list consisting of about 250 items, I need to know if a
>>particular item is in the list. I know this is better suited to a
>>dictionary but thats not the way it ended up ;-)
>
>
>>I could do a for loop to scan the list & compare each one, but I have a
>>suspission that there is a better way ?
>
>
> Indeed there is: just use the built-in "in":
>
>
[text snipped]
>
> A list of 250 words is no problem -- "Moby Dick" has a couple hundred thousand:
>
>
>>>>len(mobywords)
>
> 214112
>
> I'm not sure I understand why you think a dictionary would be better
> in this case, a list seems fine to me.
>
The statement
my_object in my_list
does under the hood a for-loop and sequentially compares every object in
my_list with my_object, so, potentially it does len(my_list) comparisons
(it's O(n) in computerese speak). With a dictionary, that is
my_object in my_dict
it is O(1), that is, it is (asymptotically) constant and independent of
the number of items in the dictionary.
So if you are going to do a lot of in tests, it does pay to put your
objects in a dictionary.
With my best regards,
G. Rodrigues
More information about the Tutor
mailing list