Python Data Structures

Lists, tuples, dictionaries, sets, deque, Counter, defaultdict, heapq, and collection idioms.

View
StandardDetailedCompact
Export
Copy the compact sheet, download it, or print it.
Download
`D` dense toggle · `C` copy all
## Lists
Append item
items.append(value)

# Append item

Extend list
items.extend([4, 5, 6])

# Extend list

Insert at index
items.insert(0, value)

# Insert at index

Slice a list
subset = items[1:4]

# Slice a list

Reverse slice copy
reversed_items = items[::-1]

# Reverse slice copy

Sort in place
items.sort(key=str.lower, reverse=False)

# Sort in place

Sorted copy
ordered = sorted(items)

# Sorted copy

Remove by value
items.remove(value)

# Remove by value

Pop last item
last = items.pop()

# Pop last item

Count occurrences
count = items.count(value)

# Count occurrences

## Dictionaries
Get with default
theme = settings.get("theme", "light")

# Get with default

Set default
items = grouped.setdefault(category, [])

# Set default

Merge dictionaries
merged = defaults | overrides

# Merge dictionaries

Dictionary update
config |= extra_config

# Dictionary update

Iterate keys and values
for key, value in data.items():
    print(key, value)

# Iterate keys and values

Dictionary comprehension
squares = {n: n * n for n in range(5)}

# Dictionary comprehension

Invert mapping
inverse = {value: key for key, value in mapping.items()}

# Invert mapping

## Sets and tuples
Set union
combined = a | b

# Set union

Set intersection
common = a & b

# Set intersection

Set difference
only_a = a - b

# Set difference

Symmetric difference
changed = a ^ b

# Symmetric difference

Is subset
is_subset = a <= b

# Is subset

Named tuple alternative
from collections import namedtuple
Point = namedtuple("Point", ["x", "y"])
p = Point(10, 20)

# Named tuple alternative

## Queues, heaps, and specialized containers
Deque as queue
from collections import deque
queue = deque(["a", "b"])
queue.append("c")
item = queue.popleft()

# Deque as queue

Counter frequencies
from collections import Counter
counts = Counter(words)
common = counts.most_common(3)

# Counter frequencies

Defaultdict list grouping
from collections import defaultdict
groups = defaultdict(list)
for user in users:
    groups[user["role"]].append(user)

# Defaultdict list grouping

Heap push and pop
import heapq
heap = []
heapq.heappush(heap, 5)
smallest = heapq.heappop(heap)

# Heap push and pop