如何创建随机列表列表

时间:2018-02-15 03:05:14

标签: python list

如何创建随机列表列表。 random.sample(range(80), 10)生成一个包含10个项目的列表,最多80个。

示例输出:

[1,4,6,44,78,45,32,56,72,23]

但是可以添加更多数据,因此它是一个列表列表吗?

期望的输出:

[1,4,6,44,78,45,32,56,72,23]
[1,4,6,44,78,45,32,56,72,23]
[1,4,6,44,78,45,32,56,72,23]
[1,4,6,44,78,45,32,56,72,23]
[1,4,6,44,78,45,32,56,72,23]
[1,4,6,44,78,45,32,56,72,23]

3 个答案:

答案 0 :(得分:3)

random.sample的结果封装在列表中并应用*运算符:

new_list = [random.sample(range(80), 10)]*6

答案 1 :(得分:1)

您可以使用itertools.repeat

>>> from itertools import repeat
>>> list(repeat(random.sample(range(80),10),6))

itertools食谱背后的想法是懒散地消费它。因此最好使用它:

>>> items = repeat(random.sample(range(80),10),6)
>>> for item in items:
        #consume item here with your program logic

答案 2 :(得分:-1)

也许提供更好解释的解决方案是考虑需要生成什么类型​​的列表。列表可以表示很多数据,例如表格中的项目,市场列表和许多其他良好的表示。

遵循一些与代码相关的生产模式,您可以通过一个因子生成每个项目,并以正确的便携方式生成堆栈堆栈或数据集合中的列表。

根据程序输入获取参数:

from sys import argv

首先利用它可以成为一匹马的顶级镜头:

from collections import UserList

ceil函数用于计算种子因子预测生成是机器轮而不是像人类一样的序列:

from math import ceil

盒子上提供的样本函数生成:

from random import sample

种子函数用于限制随机生成或增加而没有实现提供的默认值:

from random import seed

可以使用以下函数更好地使用迭代:

from itertools import repeat

现在,您可以通过以下行为附加修正后的行为:

seed(ceil(1024*8.6))

小一代的第一个匿名lambda函数:

sample_gen_fn = lambda l=80, n=10, s=0: sample(range(s,l),n)

另一个为列表的好过程工作:

user_sample_gen_fn = lambda l=80, n=10, s=0: UserList(sample_gen_fn(l,n,s))

在猫可以预测或阅读清单的世界中,这不能通过例子对动物的大脑造成伤害。在另一个运行很多都有损坏,像你的处理器一样思考猫...这可以延长计算机的使用寿命。

所有这些都可以在未在说明中解释的大型环境中使用,但您需要考虑您的实施。

稍微观察一下迭代的本机函数上使用的模式可以进行参数特定的分配,而无需调用带有可寻址内容的变量,这样就可以避免在上下文中用于调试。

def reproduce_pile_fn(ll=6):
    return repeat(lambda: user_sample_gen_fn(),ll)

def stack_pile_cmd(ll=6, l=80, n=10, s=0):
    for seq in reproduce_pile_fn(ll):
        print(seq())

我认为这有助于与其他答案平等,因为对于小型或大型实施需要一个很好的解释。

之后,您可以在特定条件下调用该函数。

if __name__ == '__main__':
    # Usage with arguments comming from the program
    # executed as an script.
    #
    # args = argv[1:]
    # stack_pile_cmd(args[0])
    #
    # Common usage

    stack_pile_cmd()