Liam Clarke schrieb: >Hi Shi, > >For what you're doing, nothing at all. > >When you use a colon, slice syntax, it defaults to [start:end] so p = >a[:] is the same as >p = a[0:len(a)] > > > But in fact there is a difference. I'll show you:
>>> a=range(5) ### creates a list-object >>> id(a) ### which has an identity 14716520 >>> p=a ### creates the new name p for the same object >>> id(p) ### let's see 14716520 ### o.k. really the same >>> q=a[:] ### this names a *copy* of a q >>> id(q) ### identity? 14714840 ### different! >>> a is p ### check if objects named a and p are identical True ### yes >>> a is q ### check if objects named a and q are identical False ### no! >>> a == q True ### but have the same "content", i. e. two different list-objects with the same elements >>> >>> ### Beware, lists are mutable: >>> >>> a [0, 1, 2, 3, 4] >>> a[1]=1001 >>> a [0, 1001, 2, 3, 4] >>> p [0, 1001, 2, 3, 4] ### object named a *and* p is changed >>> q ### copy q of a is not changed!° [0, 1, 2, 3, 4] >>> regards Gregor _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor