在 python 中创建随机字典

Creating a random dictionary in python

我想从以下数组开始创建一个随机字典:

list = [1,2,3,4,5]

特别是,我希望将数组的所有元素和相应的键作为字典的键,从该数组中随机选择一些值,除了与键对应的值

预期输出的示例应如下所示:

Randomdict = {1: [2, 4], 2: [1,3,5] 3: [2] 4: [2,3,5] 5: [1,2,3,4]}

最后但并非最不重要的一点是,所有键都应至少有 1 个值

是这样的吗?可能需要一些调整

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)

可以通过 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]}