Python Warmups
~70 min totalProgress0 / 12
</>Python Cheat Sheet
Common syntax for coding interviews
Python Cheat Sheet
Common syntax for coding interviews
Lists
nums = [3, 1, 2]
nums.append(4) # add one item
nums.extend([5, 6]) # add many items
nums.insert(1, 10)
nums.pop() # remove + return last
nums.pop(0) # remove + return by index
nums.remove(10) # remove first match
nums[1:4] # slice
nums[::-1] # reversed copy
2 in nums
len(nums)
sum(nums)
min(nums), max(nums)Dicts
user = {"name": "Alice", "age": 20}
user["team"] = "A" # add
user["age"] = 21 # update
"name" in user
user["name"] # KeyError if missing
user.get("salary") # None if missing
user.get("salary", 0) # default value
for key, value in user.items():
print(key, value)
value = user.pop("age", None)
del user["team"]Sets
seen = {1, 2, 3}
seen.add(4)
seen.discard(2) # no error if missing
seen.remove(3) # KeyError if missing
2 in seen
a | b # union
a & b # intersection
a - b # difference
a ^ b # symmetric difference
unique = set(items)Strings
s = " Hello, World "
s.strip()
s.lower(), s.upper()
s.startswith("Hello")
s.endswith("World")
s.replace("World", "Python")
parts = "a,b,c".split(",")
text = "-".join(parts)
s[1:5]
s[::-1]
"ell" in s
f"Hello, {name}"Loops & comprehensions
for index, value in enumerate(items):
print(index, value)
for left, right in zip(a, b):
print(left, right)
squares = [x * x for x in nums]
evens = [x for x in nums if x % 2 == 0]
by_id = {item["id"]: item for item in records}
lengths = {word: len(word) for word in words}
unique_lengths = {len(word) for word in words}Sorting
sorted(nums) # new list
sorted(nums, reverse=True)
nums.sort() # mutate list
sorted(words, key=len)
sorted(records, key=lambda x: x["score"])
sorted(records, key=lambda x: (-x["score"], x["name"]))
min(records, key=lambda x: x["score"])
max(records, key=lambda x: x["score"])Tuples & unpacking
point = (10, 20)
x, y = point
first, *middle, last = items
a, b = b, a # swap
for key, value in pairs:
print(key, value)
# Tuples can be dict keys / set values
visited = {(0, 0), (0, 1)}Useful built-ins
range(5) # 0..4
range(2, 10, 2) # 2, 4, 6, 8
any(x < 0 for x in nums)
all(x >= 0 for x in nums)
list(reversed(items))
list(zip(keys, values))
dict(zip(keys, values))
int("42"), str(42)
list("abc")
ord("a"), chr(97)collections
from collections import Counter, defaultdict, deque
counts = Counter(items)
counts.most_common(3)
groups = defaultdict(list)
for item in records:
groups[item["team"]].append(item)
queue = deque(items)
queue.append(value)
queue.appendleft(value)
queue.popleft()Heap & binary search
import heapq
from bisect import bisect_left, bisect_right, insort
heap = []
heapq.heappush(heap, 3)
heapq.heappush(heap, 1)
smallest = heapq.heappop(heap)
# Max heap: store negative values
heapq.heappush(heap, -score)
largest = -heapq.heappop(heap)
index = bisect_left(sorted_nums, target)
after_duplicates = bisect_right(sorted_nums, target)
insort(sorted_nums, target)