创建第一个元素子列表重复n次的随机列表列表

时间:2018-07-24 08:53:25

标签: python

请帮助我从随机数0..9创建329个元素的列表,并将每个元素重复一次作为列表:list = [18, 70, 56, 30, 24, 18, 28, 54, 21, 10],每个元素都是一个列表

ret = []
for i in range(329):
    new = []

3 个答案:

答案 0 :(得分:2)

因此,假设您有一个包含频率列表的列表:

lst = [18, 70, 56, 30, 24, 18, 28, 54, 21, 10]

您只需使用以下命令即可生成您的ret列表

ret = [k for k, freq in enumerate(lst) for i in range(freq)]

所以它包含18个零,70个等等,然后简单地将其洗牌:

import random
random.shuffle(ret)

编辑

一个带有较小集合的简单示例:

>>> import random
>>> lst = [2, 4, 1, 3, 5, 3, 3, 2, 1, 1]
>>> ret = [k for k, freq in enumerate(lst) for i in range(freq)]
>>> ret
[0, 0, 1, 1, 1, 1, 2, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 9]
>>> random.shuffle(ret)
>>> ret
[1, 0, 1, 4, 4, 1, 5, 3, 7, 1, 3, 4, 6, 5, 4, 5, 7, 8, 3, 6, 4, 6, 0, 2, 9]

答案 1 :(得分:1)

您的问题非常令人困惑,但这是您想要的吗?

my_list = [18, 70, 56, 30, 24, 18, 28, 54, 21, 10]
new_list = []

for i, x in enumerate(my_list):
    for v in range(x):
        new_list.append(i)

print(new_list)

PD-不好的做法是在代码中使用保留名称(列表)。

答案 2 :(得分:1)

根据您对我的第一个答案的评论,此处相同,但使用0-9之间的随机数。

ResourceRegistrar