[Gonçalo Rodrigues]
> It this correct? Python lists are not linked-lists (as in Scheme, for
> example). They are more like arrays (or vectors in C++/Java) with a
> little more sofistication built into them to allow, for example, to
> amortize over time a sequence of append operations. But in a nutshell,
> len is actually a field in the underlying C object so len() is a
> constant (O(1)) and as-fast-as-it-can-be operation.
>
> Someone correct me, please, If I'm wrong.

That's all correct.  It remains more idiomatic to do

    for thing in a_list:
        ...

than

    for i in range(len(a_list)):
        thing = a_list[i]
        ...

and the former is in fact a bit faster (or possibly a lot, if a_list
is very large, because range(n) actually constructs a list containing
n integers), but (ignoring the range() complication) there's no
difference in O() behavior between the two.
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to