From this thread I found out that I can use an approach with the random.choices
for my needs:
class Weights:
ITEM = {
'a': 0.5,
'b': 0.4,
'c': 0.3,
'd': 0.2,
'e': 0.1
}
import random
slot_1 = random.choices(population=list(Weights.ITEM.keys()), weights=list(Weights.ITEM.values()), k=1)[0]
slot_2 = ...?
slot_3 = ...?
Is it possible for me to get an array with the k=3
that will have "unique" results (probably [a,b,c]
) or somehow to exclude any previously selected value from the next call (with k=1
)?
For example lets say slot_1
got "b"
and slot_2
will get a random from the list of everything else without the "b"
value.
This step can be sensitive to the performance and I think that creating new arrays each time is not a good idea.
Maybe there is something except random.choices
that can be applied in this case.