Collections Library
- Collections
- Data Structure
- Deque
- Counter
- orderedDict
- defaultdict
- namedtuple
# Module Importing
from collections import deque, Counter, OrderedDict, defaultdict, namedtuple
๐ Deque
# Deque
deque_list = deque()
for i in range(5):
deque_list.append(i)
print(deque_list)
# deque([0,1,2,3,4])
deque_list.appendleft(10)
deque_list
# deque([10,0,1,2,3,4])
deque_list.rotate(2)
deque_list
# deque([3, 4, 10, 0, 1, 2])
deque_list.rotate(2)
deque_list
# deque([1, 2, 3, 4, 10, 0])
deque_list.extend([5,6,7])
deque_list
# deque([1, 2, 3, 4, 10, 0, 5, 6, 7])
deque_list.extendleft([8,9])
deque_list
# deque([9, 8, 1, 2, 3, 4, 10, 0, 5, 6, 7])
print(deque_list)
print(deque(reversed(deque_list)))
# deque([9, 8, 1, 2, 3, 4, 10, 0, 5, 6, 7])
# deque([7, 6, 5, 0, 10, 4, 3, 2, 1, 8, 9])
๐ Ordered Dict
# Ordered Dict
d = OrderedDict()
d['x'] = 100
d['y'] = 200
d['z'] = 300
d['a'] = 400
for k, v in d.items():
print(k, v)
# x 100
# y 200
# z 300
# a 400
for k, v in OrderedDict(sorted(d.items(), key=lambda t: t[0])).items():
print(k, v)
# a 400
# x 100
# y 200
# z 300
for k, v in OrderedDict(sorted(d.items(), key=lambda t: t[1])).items():
print(k, v)
# x 100
# y 200
# z 300
# a 400
๐ DefaultDict
d = defaultdict(lambda: 0)
print(d['test'])
# 0
letters = "dingadingading"
letters_dict = defaultdict(int)
for k in letters:
letters_dict[k] += 1
letters_dict
# defaultdict(int, {'d': 3, 'i': 3, 'n': 3, 'g': 3, 'a': 2})
๐ Counter
c = Counter()
c = Counter('gallahad')
print(c)
# Counter({'a': 3, 'l': 2, 'g': 1, 'h': 1, 'd': 1})
m = Counter({'red':4, 'blue':3})
print(m)
print(list(m.elements()))
# Counter({'red': 4, 'blue': 3})
# ['red', 'red', 'red', 'red', 'blue', 'blue', 'blue']
n = Counter(dogs=4, cats=2)
print(n)
print(list(n.elements()))
# Counter({'dogs': 4, 'cats': 2})
# ['dogs', 'dogs', 'dogs', 'dogs', 'cats', 'cats']
๐ namedTuple
# namedTuple
point = namedtuple('point', ['x', 'y'])
p = point(11, y=23)
print(p)
# point(x=11, y=23)
print(p[0])
print(p[1])
print(p[0]+p[1])
# 11
# 23
# 34
x, y = p
print(x, y)
print(p.x, p.y)
print(point(x=10, y=20))
# 11 23
# 11 23
# point(x=10, y=20)