【问题标题】:Is there a way in Python to update multiple random values in dictionary?Python中有没有办法更新字典中的多个随机值?
【发布时间】:2022-01-20 14:11:05
【问题描述】:

我正在开发一个时间表生成器,我需要随机放两天假。我想出了一个解决方案,但是我注意到 randinit 方法可以在一天中放两天假,所以这个选项对我不起作用。

import random

schedule = {1: "9:00 - 17:00", 2: "9:00 - 17:00", 3: "16:00 - 00:00", 4: "16:00 - 00:00", 5: "16:00 - 00:00", 6: "16:00 - 00:00", 7: "16:00 - 00:00"}
days_off = {random.randint(1, 7): "X", random.randint(1, 7): "X"}

schedule.update(days_off)

所以我认为应该有一种更简单的方法可以让它在没有硬编码的情况下工作,但我真的找不到它。

将不胜感激!

【问题讨论】:

    标签: python dictionary random


    【解决方案1】:

    numpy 的另一个答案:

    import numpy as np
    for day_off in np.random.choice(np.arange(7), size=2, replace=False):
        shedule[day_off + 1] = "X"
    

    【讨论】:

      【解决方案2】:

      您正在寻找的是random.sample(),它允许您从给定的总体中随机选择多个不同的值:

      for d in random.sample(range(1, 7+1), k=2):
          schedule[d] = "X"
      

      【讨论】:

      • random.choices 与替换一起使用,这可能会产生两次相同的数字。
      • @JanJaapMeijerink 哎呀,我的错,总是混淆两者。固定。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      • 2018-12-04
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      相关资源
      最近更新 更多