Python Random.Choice除了一个选项

时间:2018-05-09 08:18:44

标签: python dictionary random

我正在尝试使用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"}

2 个答案:

答案 0 :(得分:6)

您可以使用列表理解:

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

答案 1 :(得分:0)

使用set的替代解决方案:

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