Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #29862
| Date | 2012-09-23 18:03 -0400 |
|---|---|
| From | Dave Angel <d@davea.name> |
| Subject | Re: List Problem |
| References | <5126348a-8e87-493d-975c-d6273e59784c@googlegroups.com> <b6555e91-54ba-42fb-bd99-561cb971c2ce@googlegroups.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.1158.1348437838.27098.python-list@python.org> (permalink) |
On 09/23/2012 05:44 PM, jimbo1qaz wrote: > On Sunday, September 23, 2012 2:31:48 PM UTC-7, jimbo1qaz wrote: >> I have a nested list. Whenever I make a copy of the list, changes in one affect the other, even when I use list(orig) or even copy the sublists one by one. I have to manually copy each cell over for it to work. >> >> Link to broken code: http://jimbopy.pastebay.net/1090401 > No, actually that's the OK code. http://jimbopy.pastebay.net/1090494 is the broken one. I also would prefer an inline posting of the code, but if it's too big to post here, it's probably too big for me to debug here. The usual reason for such a symptom is a nested list, where you have multiple references to the same inner list inside the outer. When you change one of those, you change all of them. alist = [1, 2, 3] blist = [alist, alist, alist] # or blist = alist * 3 print blist alist.append(49) print blist davea@think:~/temppython$ python jimbo.py [[1, 2, 3], [1, 2, 3], [1, 2, 3]] [[1, 2, 3, 49], [1, 2, 3, 49], [1, 2, 3, 49]] Solution to this is to make sure that only copies of alist get into blist. One way is blist = [alist[:], alist[:], alist[:]] More generally, you can get into this type of trouble whenever you have non-immutable objects inside the list. Understand, this is NOT a flaw in the language. It's perfectly reasonable to be able to do so, in fact essential in many cases, when you want it to be the SAME item. -- DaveA
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
List Problem jimbo1qaz <jimmyli1528@gmail.com> - 2012-09-23 14:31 -0700
Re: List Problem jimbo1qaz <jimmyli1528@gmail.com> - 2012-09-23 14:44 -0700
Re: List Problem Chris Angelico <rosuav@gmail.com> - 2012-09-24 07:57 +1000
Re: List Problem Dave Angel <d@davea.name> - 2012-09-23 18:03 -0400
Re: List Problem Chris Angelico <rosuav@gmail.com> - 2012-09-24 08:27 +1000
Re: List Problem Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-09-23 22:37 +0000
Re: List Problem Chris Angelico <rosuav@gmail.com> - 2012-09-24 08:45 +1000
Re: List Problem Chris Angelico <rosuav@gmail.com> - 2012-09-24 08:30 +1000
Re: List Problem "Littlefield, Tyler" <tyler@tysdomain.com> - 2012-09-23 18:56 -0600
Re: List Problem Chris Angelico <rosuav@gmail.com> - 2012-09-24 11:52 +1000
Re: List Problem Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-09-23 22:07 +0000
Re: List Problem jimbo1qaz <jimmyli1528@gmail.com> - 2012-09-23 15:44 -0700
csiph-web