strange append

Bruno Desthuilliers onurb at xiludom.gro
Mon Oct 2 11:41:15 CEST 2006


E.Nurminski wrote:
> Hello to all good people
> 
> I am new to the great Py so am quite puzzled by the following code
> 
> ---------------
> 
> res = []
> x = [ 1, 1 ]
> for i in xrange(0,5):
> 	res.append(x)
> 	x[1] = x[1] + 1
> 	print "x = ", x
> 	print "res = ", res
> 
> ---------------
> 
> Looks like it puts smth like reference to 'x' into 'res' list, instead of 
> value. But if I want a value should I use a different method or what ?

What difference do you make between "values" and "references" ?-)

Hint 1: in Python, all you have are objects. Yes, even strings and
numbers etc...

> Evgeni
> 
> P.S. Could not easily find the issue in the manual/tutorial can you point 
> me out to smth relevant ?
> 

Hint 2 : Python has something very nice which is the interactive python
shell. This lets you try code snippets and see by yourself how it really
works :

bruno at bousin ~ $ python
Python 2.4.3 (#1, Sep 29 2006, 20:26:46)
[GCC 4.1.1 (Gentoo 4.1.1-r1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> mylist = [1, "aaa"]
>>> mylist.append(42)
>>> mylist.append("lala")
>>> mylist
[1, 'aaa', 42, 'lala']
>>>

HTH
-- 
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb at xiludom.gro'.split('@')])"



More information about the Python-list mailing list