[Tutor] could someone explain why this happens to me.

Alan Gauld alan.gauld at btinternet.com
Sat Mar 7 21:02:05 CET 2009

"Emad Nawfal (عماد نوفل)" <emadnawfal at gmail.com> wrote

> As a linguist, I would love to know what the difference between 
> these
> things are:

The differences are the same whether you are a linguist or not :-)
(and yes I know my reading is incorrect grammaticallly but I couldn't 
resist it!)

> mycopy = original[:]
Returns a slice of the original list. In this case it so happens
the slice is the full list.

> mycopy = copy.deepcopy(original)

calls the deepcopy function which traverses the original list
and all nested structures explicitly copying the elements.

> mycopy = list(original)

Use the list type constructor to make a list out of its argument.
It just so happens the argument in this case is a list.

The end result is the same but the mechanisms (ie the code called)
are quite different. It would be interesting to compare speeds,
but I'm too lazy! I suspect deepcopy would be slowest but I'm
not sure about the other two.

Alan G.

More information about the Tutor mailing list