如何在Python中的數組中重複元素?如何在Python中的數組中重複元素?
或者類似的東西比這更簡單:
drange = [];
for i in xrange(j):
drange.append(i);
drange.append(i);
應該產生:[0,0,1,1,2,2,...,J-1,J-1]
如何在Python中的數組中重複元素?如何在Python中的數組中重複元素?
或者類似的東西比這更簡單:
drange = [];
for i in xrange(j):
drange.append(i);
drange.append(i);
應該產生:[0,0,1,1,2,2,...,J-1,J-1]
>>> 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]
使用列表中理解,然後壓平列表:
>>> sum([ [i]*2 for i in xrange(5)],[])
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4]
不幸的是,使用與列表的總和具有二次性能,所以它不能很好地擴展。 – 2014-11-06 01:07:45
這裏是一個兩線的選擇。
base= [2*[i] for i in range(5)]
drange = [item for x in base for item in x]
的答案使用numpy的
>>> import numpy as np
>>> j = 3
>>> np.repeat(np.array(xrange(j)), 2)
array([0, 0, 1, 1, 2, 2])
如果你可以給每個那將是很好的方法的優點/缺點,謝謝! – chacham15 2014-11-06 01:19:47