繁体   English   中英

在 python 中创建随机字典

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM