How to read source code of python?
Ian Kelly
ian.g.kelly at gmail.com
Thu Jun 10 03:23:39 EDT 2010
On Wed, Jun 9, 2010 at 11:54 PM, Benjamin Kaplan
<benjamin.kaplan at case.edu> wrote:
> On Wed, Jun 9, 2010 at 10:25 PM, Qijing Li <qjing.li at gmail.com> wrote:
>> Thanks for your reply.
>> I'm trying to understand python language deeply and use it efficiently.
>> For example: How the operator "in" works on list? the running time is
>> be O(n)? if my list is sorted, what the running time would be?
>>
>>
>
> Still O(n). Python doesn't know that your list is sorted, so nothing
> changes. And the check to make sure it is sorted would be O(n) anyway.
However, if the programmer knows that the list is sorted, then the
following would be O(log n):
from bisect import bisect_left
index = bisect_left(the_list, item)
item_in_list = index < len(the_list) and the_list[index] == item
But in general, if you want the "in" operator to be efficient, then
you probably want to use a set or a dict, not a list.
Cheers,
Ian
More information about the Python-list
mailing list