在 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]}
我想从以下数组开始创建一个随机字典:
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]}