【问题标题】:Creating a random dictionary in python在python中创建一个随机字典
【发布时间】:2022-01-19 14:53:13
【问题描述】:

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

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 个值

【问题讨论】:

  • 您好,请问您能提供预期的输出吗?

标签: python arrays random


【解决方案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]}

【讨论】:

    【解决方案2】:

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

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-15
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      • 2021-03-09
      • 2015-01-09
      相关资源
      最近更新 更多