如何在python中重复列表中的数字?

我有一个清单

 A = [1,6,3,8,5,5,2,1,2,10]

我想重复这样的数字:

A = [1,6,6,6,6,6,6,3,3,3,8,8,8,8,8,8,8,8,..... so on] 

即1重复一次,6重复六次,3重复三次等等......

我试过:

B=np.concatenate([([x]*x) for x in A], axis=0) 

但它乘以相应的数字,我得到了这个结果:

  B = [1,36,36,36,36,36,36,9,9,9,.....so on]

当我在做:

B=np.concatenate([([x]*3) for x in A], axis=0)

这给了我:

B = [1,1,6,6,3,3,8,8... so on]

我在这里做错了什么?

回答

您可以在numpy不使用for循环的情况下执行此操作。

np.repeat(a, repeats)将重复输入数组,a根据repeats哪个指定每个元素的重复次数。

import numpy as np
A = [1,6,3,8,5,5,2,1,2,10]
B = np.repeat(A,A)

输出:

>>> array([ 1,  6,  6,  6,  6,  6,  6,  3,  3,  3,  8,  8,  8,  8,  8,  8,  8,
    8,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  2,  2,  1,  2,  2, 10,
   10, 10, 10, 10, 10, 10, 10, 10, 10])


回答

使用NumPy的repeat函数可以得到解决方案

import numpy as np
np.repeat(A, A)


以上是如何在python中重复列表中的数字?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>