我有这个数组:
countOverlaps = [numA, numB, numC, numD, numE, numF, numG, numH, numI, numJ, numK, numL]
然后我通过消除所有0值来压缩该数组:
countOverlaps = [x for x in countOverlaps if x != 0]
当我这样做时,我得到这样的输出: [2,1,3,2,3,1,1]
这应该是什么,所以这是有道理的。现在,我想向数组中添加值,以便每个数字将其自身添加到数组中的次数增加。
赞:
原件: [2,1,3,2,3,1,1]
我想要的是:[2,2,1,3,3,3,2,2,3,3,3,1,1]
在python中是否可能出现这种情况?
谢谢
答案 0 :(得分:1)
已更新
请检查以下内容:
>>> a = [2, 1, 3, 2, 3, 1, 1]
>>> [b for b in a for _ in range(b)]
[2, 2, 1, 3, 3, 3, 2, 2, 3, 3, 3, 1, 1]
答案 1 :(得分:0)
这可以使用列表理解来完成。到目前为止,您已经:
countOverlaps = [10,25,11,0,10,6,9,0,12,6,0,6,6,11,18]
countOverlaps = [x for x in countOverlaps if x != 0]
这给我们所有非零的数字。然后,我们可以使用以下代码执行您想要的操作:
mylist = [number for number in list(set(countOverlaps)) for i in range(0, countOverlaps.count(number)) ]
这会将“ mylist”变成以下输出,这就是您要得到的:
[6, 6, 6, 6, 9, 10, 10, 11, 11, 12, 18, 25]