使用随机数和长度创建列表的Python列表

时间:2016-02-02 20:02:54

标签: python list random

如何在Python中创建一个包含随机数的列表列表?列表和子列表的长度也是随机的。我试过这个。

import random
p= []
for a in range(random.randint(5,7)):
   p.append(random.randint(1,20))
k=[]
for b in range(random.randint(4,8)):
   k.append(p)
print k

为什么它不起作用?

5 个答案:

答案 0 :(得分:3)

使用列表理解和random.randrange

import random as ra

r1 = 10
r2 = 20
r3 = 30
lst = [[ra.randrange(r1) for _ in range(ra.randrange(r2))] for __ in range(ra.randrange(r3))]
print(lst)

e.g。产生

[[2, 2, 6, 0, 6, 7, 5, 5, 6],
 [2, 4],
 [8, 2, 2, 0, 3, 5, 4, 0, 4, 0, 9, 2, 7, 4, 6, 1, 8, 6],
 [8, 4, 2, 3, 7, 2, 1, 7, 0, 0, 8],
 [7],
 [7, 2],
 [0, 6, 9, 1, 1, 1, 8, 8, 4, 6, 1, 5, 3, 6],
 [4, 5, 7, 1, 8, 6],
 [7, 5, 1, 2, 5],
 [8, 6],
 [9, 9, 8, 5, 3, 8, 5],
 [3, 2, 3, 4, 8, 8, 9, 3],
 [1, 1],
 [0, 8, 6, 3, 6, 6, 9, 1, 4, 7, 4, 0, 4, 1, 1, 6, 1, 2]]

注意:在Python 2上使用xrange而不是range

答案 1 :(得分:1)

如果您的范围大于您从中选择的随机变量数,则可以使用random.sample。这种方法可确保嵌套列表中的每个随机值都是唯一的:

from random import randint
import random

number_of_lists = randint(0,1000)

random_data = []
for number in xrange(0,number_of_lists):    
    list_length=randint(0,1000)
    random_data.append(random.sample(range(1, 100000), list_length))

答案 2 :(得分:1)

from random import random   
 [x for x in xrange(int(10*random()), int(1000 * random()), int(100 * random()))]

答案 3 :(得分:1)

list!

答案 4 :(得分:1)

试试这个:

import random
my_randoms = random.sample(xrange(101), 10)