5

What is the most efficient way to create list of the same number with n elements?

4

1 回答 1

15
number = 1
elements = 1000

thelist = [number] * elements

>>> [1] * 10
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

NB: Don't try to duplicate mutable objects (notably lists of lists) like that, or this will happen:

In [23]: a = [[0]] * 10

In [24]: a
Out[24]: [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]

In [25]: a[0][0] = 1

In [26]: a
Out[26]: [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]

If you are using numpy, for multidimensional lists numpy.repeat is your best bet. It can repeat arrays of all shapes over separate axes.

于 2013-03-30T23:01:48.853 回答