How to make arrays from Lists

G

gc_ottawa

I want to construct a 2-dimensional array from a List but I cannot
find a simple way of changing any element. For example, construct a
3x3 array like this:-
x=[x]*3
this produces [[0,0,0],[0,0,0],[0,0,0]. So far so good.
How do I change the value of any element to produce (say)
[[99,0,0],[0,0,0],[0,0,0]] ?

gordc
 
B

bearophileHUGS

gc_ott:
How do I change the value of any element to produce (say)
[[99,0,0],[0,0,0],[0,0,0]] ?

gordc

To create a 2D list, that is a list of lists:
x = [[0] * ncols for i in nrows]
(Don't do what you were doing, because you end with many references to
the same list, and that will give you troubles.)

To set an item you do just:
x[0][0] = 99

Bye,
bearophile
 
G

gc_ottawa

gc_ott:
How do I change the value of any element to produce (say)
[[99,0,0],[0,0,0],[0,0,0]] ?

To create a 2D list, that is a list of lists:
x = [[0] * ncols for i in nrows]
(Don't do what you were doing, because you end with many references to
the same list, and that will give you troubles.)

To set an item you do just:
x[0][0] = 99

Bye,
bearophile

Many thanks, I don't think I would ever 'discovered' this.
gordc
 
R

Robert Kern

gc_ott:
How do I change the value of any element to produce (say)
[[99,0,0],[0,0,0],[0,0,0]] ?
gordc
To create a 2D list, that is a list of lists:
x = [[0] * ncols for i in nrows]
(Don't do what you were doing, because you end with many references to
the same list, and that will give you troubles.)

To set an item you do just:
x[0][0] = 99

Bye,
bearophile

Many thanks, I don't think I would ever 'discovered' this.

If you are trying to emulate numerical arrays, you may want to use numpy, instead.

http://numpy.scipy.org/

import numpy
x = numpy.zeros([3,3], dtype=int)
x[0,0] = 99

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top