Python Random.Choice за исключением одного варианта - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь использовать 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 голосов
/ 09 мая 2018

Альтернативное решение с использованием set:

mutator = choice(tuple(mutationMarkers.keys() - {0}))
0 голосов
/ 09 мая 2018

Вы можете использовать понимание списка:

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