A__
A__

Reputation: 1751

Initialize 2d array with variable size

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?

Upvotes: 4

Views: 1015

Answers (2)

timgeb
timgeb

Reputation: 78780

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]])

Upvotes: 1

chris
chris

Reputation: 2063

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]]

Upvotes: 5

Related Questions