Using the following method:
myArray = [0,1] * NUM_ITEMS
Desired result (2d array):
[[0,1],[0,1],[0,1]...]
Actual result (extended 1d array):
[0,1,0,1,0,1...]
How can I achieve the desired result preferably without using numpy?
asked Nov 20, 2018 at 22:07
A__
1,7812 gold badges23 silver badges40 bronze badges
2 Answers 2
A list comprehension should do the trick:
>>> NUM_ITEMS = 5
>>> my_array = [[0, 1] for _ in range(NUM_ITEMS)]
>>> my_array
[[0, 1], [0, 1], [0, 1], [0, 1], [0, 1]]
answered Nov 20, 2018 at 22:08
chris
2,0832 gold badges15 silver badges22 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
Since you tagged arrays, here's an alternative numpy solution using numpy.tile.
>>> import numpy as np
>>> NUM_ITEMS = 10
>>> np.tile([0, 1], (NUM_ITEMS, 1))
array([[0, 1],
[0, 1],
[0, 1],
[0, 1],
[0, 1],
[0, 1],
[0, 1],
[0, 1],
[0, 1],
[0, 1]])
answered Nov 20, 2018 at 22:19
timgeb
79.2k20 gold badges129 silver badges150 bronze badges
Comments
lang-py
[[0, 1]]*NUM_ITEMS, no, that doesn't work, even if it looks like it does.