如何在Python中重复数组中的元素?
或类似地,比这更简单:
drange = [];
for i in xrange(j):
drange.append(i);
drange.append(i);
它应该产生:[0,0,1,1,2,2,... j-1,j-1]
答案 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]