python list comprehension从列表中创建重复值

时间:2016-09-11 10:16:11

标签: python list

我正在尝试创建

function showHideUsers() {
   $('#userTable').show();
   $('#userTable').css('display', 'block');
}

输出:

[ x 
 for x in [1,2,3] 
     for y in [3,1,4] ]

但我想要的是创建

  • 1 3次
  • 2 1次
  • 3 4次

预期输出:

[1, 1, 1, 2, 2, 2, 3, 3, 3]

是否可以在列表理解中执行此操作?

3 个答案:

答案 0 :(得分:5)

使用zip() function将您的号码与其计数配对:

numbers = [1, 2, 3]
counts = [3, 1, 4]
output = [n for n, c in zip(numbers, counts) for _ in range(c)]

答案 1 :(得分:2)

当然,zip

>>> [item for x,y in zip([1,2,3], [3,1,4]) for item in [x]*y]
[1, 1, 1, 2, 3, 3, 3, 3]

答案 2 :(得分:1)

我还可以使用np.repeat如果您对数组作为结果很好

import numpy as np
np.repeat([1, 2, 3] ,[3, 1, 4])