首页 > 解决方案 > 生成两个不同的随机数列表

问题描述

我想生成两个不同的随机数列表。条件是第一个列表索引的值不能等于同一索引中的第二个列表值。

例如a=[5,6,7,5]q=[2,7,3,5]在这种情况下,列表 q 中第四个索引的值等于列表 a 中相同索引中的值。我想避免这种情况。我创建了如下列表

import random
a=[]
b=list(range(1,7164))
for i in b:
   t=random.randint(1,20)
   a.append(t)

如何生成具有上述条件的第二个列表?

标签: pythonlistrandom

解决方案


import random

def generate_n_lists(num_of_lists, num_of_elements, value_from=0, value_to=100):
    s = random.sample(range(value_from, value_to + 1), num_of_lists * num_of_elements)
    return [s[i*num_of_elements:(i+1)*num_of_elements] for i in range(num_of_lists)]

print(generate_n_lists(2, 5, 0, 20))    # generate 2 lists, each 5 elements, values are from 0 to 20

印刷:

[[1, 16, 4, 3, 15], [0, 10, 14, 17, 7]]

推荐阅读