【问题标题】:Python Random.Choice EXCEPT One OptionPython Random.Choice 除了一个选项
【发布时间】:2018-05-09 08:18:44
【问题描述】:

我正在尝试使用random.choice() 从字典中选择一个项目,但是,我希望完全忽略其中一个项目。例如:

mutationMarkers = {0: "original", 1: "point_mutation", 2: "frameshift_insertion", 
                   3: "frameshift_deletion", 4: "copy_number_addition", 
                   5: "copy_number_subtraction"}

mutator = choice(list(markers)) # output is 0, 1, 2, 3, 4, 5

是否可以使用random.choice而忽略{0: "original"}

【问题讨论】:

    标签: python dictionary random


    【解决方案1】:

    使用set 的替代解决方案:

    mutator = choice(tuple(mutationMarkers.keys() - {0}))
    

    【讨论】:

      【解决方案2】:

      您可以使用列表推导:

      mutator = choice([x for x in mutationMarkers if x != 0])
      

      【讨论】:

      • @BcK 我认为性能不会成为 5 个元素列表的问题...
      • @BcK,好吧,你也可以在别处定义列表,如果你必须重复调用choice(),可以重复使用它。
      • @jpp 显式优于隐式 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-04
      • 1970-01-01
      相关资源
      最近更新 更多