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

2024-04-19 08:35: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]


Tags: in元素for数组事情appendxrangedrange
3条回答

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

>>> sum([ [i]*2  for i in xrange(5)],[])
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4]
>>> 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]

使用numpy的答案

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

相关问题 更多 >