Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Bag:
- def __init__(self, items=None):
- self.__bag = {}
- if items is not None:
- for item in items:
- self.add(item)
- def add(self, item):
- self.__bag[item] = self.__bag.get(item, 0) + 1
- def __delitem__(self, item):
- if self.__bag.get(item) is not None:
- self.__bag[item] -= 1
- if self.__bag[item] <= 0:
- del self.__bag[item]
- else:
- raise KeyError(str(item))
- def count(self, item):
- return self.__bag.get(item, 0)
- def __len__(self):
- return sum(count for count in self.__bag.values())
- def __contains__(self, item):
- return item in self.__bag
- def __iter__(self):
- items = []
- for item, count in self.__bag.items():
- for _ in range(count):
- items.append(item)
- return iter(items)
- Example:
- bag = Bag('first', 'first', 'second')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement