deque
from collections import deque
- append(x)
- appendleft(x)
- pop()
- popleft()
- clear()
- count()
- extend(iterable)
- extendleft()
- remove(val)
- reverse()
- rotate(n = 1)
- maxlen
heapq
import heapq
- heappush(h, item)
- heappop(h)
- heapreplace(h, item)
- heapify(h)
bisect
import bisect
- bisect(list, val, low=0, high=len(list))
- bisect_left(list, val)
- insort(list, val)
- insort_left(list, val)
binary search tree
from sortedcontainers import SortedList (Similar to multiset in C++)
- add(val)
- update(iterable)
- discard(val)
- remove(val)
- pop(index=-1)
- count(val)
- index(val)
- bisect_left(val)
- bisect_right(val)
from sortedcontainers import SortedDict
- pop(key)
- popitem(index=-1)
- peekitem(index=- 1) (return (key, value) pair at index)
from sortedcontainers import SortedSet
- add(val)
- pop(index=-1)
- remove(val)
- discard(val)
Useful Functions
- chr(97) = 'a'
- ord('a') = 97
- map(fun, iterable)
- filter(fun, iterable)
- reduce(func, iterable)
- float('inf')
- divmod()
- bin()
- float.is_integer()
- int.bit_length()
Useful Syntax
- [f(x) if condition else g(x) for x in sequence]
- [f(x) for x in sequence if condition]
- [entry for tag in tags for entry in entries if tag in entry]
- zeros = [[[0 for _ in range(4)] for _ in range(3)] for _ in range(2)]
- zeros = [[0]*M for _ in range(N)]