如何在Python中重复数组中的元素?

时间:2014-11-06 00:57:20

标签: python

如何在Python中重复数组中的元素?

或类似地,比这更简单:

drange = [];
for i in xrange(j):
    drange.append(i);
    drange.append(i);

它应该产生:[0,0,1,1,2,2,... j-1,j-1]

4 个答案:

答案 0 :(得分:3)

>>> j = 3
>>> drange = []
>>> for i in xrange(j):
...     drange.extend([i]*2)
... 
>>> drange
[0, 0, 1, 1, 2, 2]

或作为列表理解

>>> drange = [i for i in xrange(j) for k in range(2)]
>>> drange
[0, 0, 1, 1, 2, 2]

在某些情况下,此方法也适用

>>> drange = [i//2 for i in xrange(j*2)]
>>> drange
[0, 0, 1, 1, 2, 2]

答案 1 :(得分:1)

使用numpy的答案

>>> import numpy as np
>>> j = 3
>>> np.repeat(np.array(xrange(j)), 2)
array([0, 0, 1, 1, 2, 2])

答案 2 :(得分:0)

使用列表理解然后展平列表:

>>> sum([ [i]*2  for i in xrange(5)],[])
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4]

答案 3 :(得分:0)

这是一个双线替代方案。

base=  [2*[i] for i in range(5)]
drange = [item for x in base for item in x]