Python Cheat Sheet
A searchable, printable Python 3 reference — syntax, data structures, comprehensions, functions, classes, files and the standard library. Free.
Variables & types
10x = 1
Assign a variable (dynamically typed)
x: int = 1
Optional type annotation
a, b = 1, 2
Multiple assignment
type(x)
Get the type of a value
int('42')
Convert a string to an integer
str(42)
Convert a value to a string
isinstance(x, int)
Type check
None
The null/absence value
x = y = 0
Chained assignment
PI: Final = 3.14
Constant hint (typing.Final)
Strings
11f'Hello {name}'
f-string interpolation
len(s)
String length
s.upper()
Convert to upper case
s.strip()
Remove surrounding whitespace
s.split(',')
Split into a list
','.join(items)
Join a list with a separator
s.replace('a', 'b')
Replace substrings
'a' in s
Membership test
s[1:4]
Slice characters 1 to 3
s[::-1]
Reverse a string
s.startswith('a')
Check the prefix
Lists & tuples
10a = [1, 2, 3]
Create a list
a.append(4)
Add an item to the end
a.insert(0, x)
Insert at an index
a.pop()
Remove and return the last item
a[1:3]
Slice a sublist
sorted(a, reverse=True)
Return a sorted copy
a.sort(key=len)
Sort in place by a key
len(a)
Number of items
t = (1, 2)
Immutable tuple
first, *rest = a
Unpack with a star
Dicts & sets
10d = {'k': 'v'}
Create a dictionary
d['k']
Access a value by key
d.get('k', default)
Get with a fallback
d.keys() / d.values()
View keys or values
d.items()
Iterate key/value pairs
{**a, **b}
Merge dictionaries
a | b
Dict/set union operator
del d['k']
Remove a key
s = {1, 2, 3}
Create a set (unique values)
set(a) & set(b)
Set intersection
Comprehensions
8[x * 2 for x in a]
List comprehension
[x for x in a if x > 0]
Filtered comprehension
{x: x**2 for x in a}
Dict comprehension
{x for x in a}
Set comprehension
(x for x in a)
Generator expression (lazy)
[y for row in m for y in row]
Flatten with nested loops
[a if c else b for x in items]
Conditional value in comprehension
sum(x for x in a)
Aggregate a generator
Control flow
9if x > 0:\n ...
Conditional (indentation matters)
elif / else:
Additional branches
a if cond else b
Ternary expression
for x in range(10):
Loop over a range
for i, x in enumerate(a):
Loop with an index
for a, b in zip(x, y):
Loop two iterables together
while cond:
Loop while true
break / continue
Exit or skip an iteration
match x:\n case 1: ...
Structural pattern matching (3.10+)
Functions
8def f(a, b=1): return a + b
Function with a default argument
def f(*args, **kwargs):
Variadic positional + keyword args
f(name='Sam')
Call with a keyword argument
lambda x: x + 1
Anonymous inline function
def f(a: int) -> int:
Type hints for params and return
@decorator
Wrap a function with a decorator
yield value
Produce a value from a generator
global x / nonlocal x
Rebind an outer-scope variable
Classes
9class A(Base):
Class with inheritance
def __init__(self, x):
Constructor / initializer
self.x = x
Instance attribute
def __str__(self):
String representation
@property
Computed read-only attribute
@staticmethod / @classmethod
Static and class methods
super().__init__()
Call the parent initializer
@dataclass
Auto-generate init/repr/eq
isinstance(obj, A)
Check the instance type
Files, errors & modules
9with open('f.txt') as fh:
Open a file (auto-closed)
fh.read() / fh.readlines()
Read file contents
open('f.txt', 'w').write(s)
Write to a file
try:\n ...\nexcept ValueError as e:
Catch a specific exception
raise ValueError('bad')
Raise an exception
finally:
Always-run cleanup block
import os
Import a module
from math import sqrt
Import a specific name
import numpy as np
Import with an alias
No entry matches “:q”.
Need help?
Found an issue with this tool? Let our team know.