如何在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
为什么它不起作用?
答案 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)