【问题标题】:Randomly choosing from multiple lists in python从python中的多个列表中随机选择
【发布时间】:2020-10-14 04:37:45
【问题描述】:

我有 3 个列表,并希望 Python 从所有列表中选择多个选项。我该怎么做?

我已经尝试了下面的代码,但它总共只给了我 1 个选项。

list_1 = [1,3,5]

list_2 = [2,4,6]

list_3 = [10]

random.choice([random.choice(list_1)] + [random.choice(list_2)] + 
              [random.choice(list_3)])

【问题讨论】:

  • 你期待像(1, 6, 10)这样的结果吗? (或者可能是[1, 6, 10]?) - 在这种情况下,您不应该从以前的结果中再次随机选择(这就是您正在做的),而只是将结果组合到一个列表或元组中。或者像[6,1,3] 这样的结果也可以吗?在这种情况下,首先组合列表,然后从结果中随机选择。
  • 对于提供的输入列表,哪些输出应该是可能的,它们的相对概率应该是多少?

标签: python list random


【解决方案1】:

你的问题不清楚,但我认为你想问的是:

要从几个列表中随机选择,您可以试试这个:

list_1 = [1,3,5]

list_2 = [2,4,6]

list_3 = [10]

random.choice([random.choice(list_1), random.choice(list_2), random.choice(list_3)])

【讨论】:

    【解决方案2】:

    您可以使用 random.sample 函数检索多个随机值

    语法:random.sample(list,k) 其中 k 是要采样的值的数量。

    list_1 = [1,3,5]
    
    list_2 = [2,4,6]
    
    list_3 = [10]
    
    random.sample(list_1+list_2+list_3,3)
    

    [编辑]

    如果你想要每个列表中的一个,

    final_list = random.sample(list_1,1)+random.sample(list_2,1)+random.sample(list_3,1)
    

    这可以使用如下的 random.choice 来完成

    final_list =[ random.choice(list_1),random.choice(list_2),random.choice(list_3)]
    

    【讨论】:

    • 谢谢!这会奏效。如果我想要 list_1 中的 1 个选项、list_2 中的 1 个选项和 list_3 中的 1 个选项怎么办?
    • 已编辑.. 如果您找到合适的答案,请将其标记为已接受的答案,并在左侧使用绿色复选标记。快乐学习。
    • 是的!非常感谢文卡塔克里希南!
    【解决方案3】:

    你的意思是这样的:

    list_1 = [1,3,5]
    list_2 = [2,4,6]   
    list_3 = [10]
    
    [random.choice(list_1)+random.choice(list_2)+random.choice(list_3)]
    

    这将给出:

     [1,6,10]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-15
      • 2012-02-21
      • 2012-11-01
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多