Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def ShuffleBag(items, seed=None):
- """Create a new shuffled bag using the elements in items.
- Items can be a dict of (item : frequency) pairs, or an iterable.
- """
- try:
- items = sum(([item] * freq for (item, freq) in items.items()), [])
- except AttributeError:
- items = list(items)
- random.seed(seed)
- while True:
- n = len(items)
- for i in range(n):
- grab = random.randint(i, n-1)
- items[i], items[grab] = items[grab], items[i]
- yield items[i]
- sb = ShuffleBag([1, 2, 2, 2])
- print sb.next() # 1 - 25%, 2 - 75%
- sb = ShuffleBag({1:1, 2:3})
- print sb.next() #1 - 25%, 2 - 75%
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement