[英]Creating a random dictionary in python
我想从以下数组开始创建一个随机字典:
list = [1,2,3,4,5]
特别是,我希望将数组的所有元素作为字典的键,并作为相应的键,从该数组中随机选择一些值,除了对应于键的值
预期 output 的示例应类似于:
Randomdict = {1: [2, 4], 2: [1,3,5] 3: [2] 4: [2,3,5] 5: [1,2,3,4]}
最后但并非最不重要的一点是,所有键都应该至少有 1 个值
它可以通过random
模块和理解来完成:
from random import sample, randrange
d = {i: sample([j for j in lst if i != j], randrange(1, len(lst) - 1))
for i in lst}
如果您首先将random.seed(0)
用于可重现的数据,您将获得:
{1: [3, 2], 2: [4, 3], 3: [2, 4], 4: [3, 1]}
{1: [3], 2: [1], 3: [4, 1], 4: [1, 3]}
{1: [3, 2], 2: [3, 4], 3: [4], 4: [2, 3]}
像这样的东西? 可能需要一些调整
from random import randrange, sample
q = [1, 2, 3, 4, 5]
a = {}
for i in q:
n = randrange(len(q)-1)
a[i] = sample(q, n)
print(a)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.