Two-dimensional arrays
Peter Slizik
peter.slizik at pobox.sk
Mon May 26 12:50:04 EDT 2003
Hi pythoners,
I'm working on a problem in which I have to use 2-dimensional array.
I'm sorry, but I feel I should describe it precisely, so the question
will be at the end of this mail.
I created the 2-dim array using
>>> dim = 5
>>> array = [[0]*dim]*dim
Here's how it looks like (using PrettyPrint):
>>> pprint.pprint(array)
[[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]]
Then I tried to change some elements:
>>> array[1][2] = 1
The result looks quite strange:
>>> pprint.pprint(array)
[[0, 0, 1, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 1, 0, 0]]
After a while of fooling around, I realised the problems is in
references. The 2-dim array doesn't consist of five 1-dim arrays, but
of five references to the same array.
How can I overcome this problem? Or should I use some other approach to
solve this 2-dim array problem - so trivial in C, but 'unsolvable' in
Python?
Thanx in advance
Peter
More information about the Python-list
mailing list