On Thu, Feb 6, 2014 at 3:59 PM, cool-RR <ram.rac...@gmail.com> wrote:
> Hi,
>
> I'm curious. If I append an item to a list from the left using `list.insert`, 
> will Python always move the entire list one item to the right (which can be 
> super-slow) or will it check first to see whether it can just allocate more 
> memory to the left of the list and put the item there, saving a lot of 
> resources?

I'm pretty sure it'll slide all the existing elements right one
position, and add at the leftmost position just opened up - assuming
you're inserting at position 0.

As was already mentioned, collections.deque is good for this sort of
thing.  It's implemented as a fancy doubly-linked list. Or rather, a
doubly-linked list of smallish arrays/lists.

For a singly-linked list:
http://stackoverflow.com/questions/280243/python-linked-list
http://stromberg.dnsalias.org/~strombrg/linked-list/

HTH
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to