Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import choice
- from collections import defaultdict
- from itertools import groupby
- class Instance:
- def __init__(self, num) -> None:
- self.num = num
- arr = list(range(4))
- instances = [Instance(choice(arr)) for _ in range(10)]
- print("values ", [instance.num for instance in instances])
- # values [3, 2, 3, 2, 3, 1, 3, 1, 3, 2]
- # use defaultdict
- pair1 = defaultdict(list)
- for instance in instances:
- pair1[instance.num].append(instance)
- # use groupby # wrong! need to sort by num first
- groups = groupby(instances, lambda instance: instance.num)
- pair2 = {x: list(g) for x, g in groups}
- assert pair1 != pair2 # also probably equal
- # use groupby # wrong! need to sort by num first
- instances.sort(key=lambda instance: instance.num)
- groups2 = groupby(instances, lambda instance: instance.num)
- pair3 = {x: list(g) for x, g in groups2}
- assert pair1 == pair3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement