[Tutor] assignment statements in python

Python python at venix.com
Mon Jun 12 17:20:55 CEST 2006


On Mon, 2006-06-12 at 09:37 -0400, Kermit Rose wrote:
>   
> From: Python 
> Date: 06/11/06 22:59:38 
> To: Kermit Rose 
> Cc: Tutor Python 
> Subject: Re: [Tutor] assignment statements in python 
>  
> 
> The basic python objects: numbers, strings, and tuples are immutable and 
> can not be changed (mutated). 
> a = B = 3 
> B = 4 # binds B to a different object with value 4 
> # the object with value 3 is unchanged 
> print a 
> 3 
>  
> **
> If I write 
>  
> a = 3
> a = 4
> a = 5
>  
> Are the objects containing 3 and 4 erased when they no longer have a name?

Yes

>  
> **
>  
> >>>>>
>  
> Container objects such as lists and dictionaries can be changed in 
> place. 
> >>> a = B = [1,2,3] 
> >>> B.append(4) # changes (mutates) B 
> >>> print a 
> [1, 2, 3, 4] 
>  
> ******
>  
> Good.  Now I know a more efficient way to extend  an array.  
>  
> I had been creating an entire new array, and equivalencing the old array to
> it.
>  
> ******
> >>>>>>
>  
> >>> B[2] = B[3] # positions 2 and 3 reference the same object 
> >>> print B 
> [1, 2, 4, 4] 
> >>> print a 
> [1, 2, 4, 4] 
>  
> ******
>  
> I still don't know how to make it so that
>  
> If  B = [ 1,2,4,5]
>  
> B.append(value of B[4])

There is no B[4]

B[0] is 1
B[1] is 2
B[2] is 4
B[3] is 5

Perhaps you mean to search B looking for the value 4 and then append
that value?

index_of_4 = B.index(4)		# returns index to location of first 4
B.append( B[index_of_4])	# appends the 4 to the end of B

> copy the value of B[2] into B[3]
>>> import copy
>>> B = [ 1,2,4,5]
>>> B[3] = copy.copy(B[2])
>>> B
[1, 2, 4, 4]

Since 4 is immutable, there is no need to use the copy module, but it is
there for when you need to make copies of an object.

> copy  the value 3 into B[2].

B[2] = 3	# no need for a copy since 3 is immutable

>  
> 
> Or,  equivalently,
>  
> If B = [1,2,4,5]
>  
> Insert the value 3 between
> B[1] and b[2],
>  
>>> B = [ 1,2,4,5]
>>> B.insert(2,3)	# inserts 3 before B[2]
>>> B
[1, 2, 3, 4, 5]

>>> help(B.insert)

insert(...)
    L.insert(index, object) -- insert object before index

(Use q to leave the help screen)
> so that B 
> becomes
> [1,2,3,4,5].
> > Kermit < kermit at polaris.net > 
> > 
> > 
> > 
> > _______________________________________________ 
> > Tutor maillist - Tutor at python.org 
> > http://mail.python.org/mailman/listinfo/tutor 
-- 
Lloyd Kvam
Venix Corp



More information about the Tutor mailing list