[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 - [email protected]
http://mail.python.org/mailman/listinfo/tutor