Practice Arena

Python Coding Challenges

Write real Python in the browser. Instant feedback. From beginner to expert.

925 challenges 556 easy 323 medium 46 hard
Lists & Arrays easy

Rotate List Right by k

Implement a function that rotates a list to the right by k positions.

lists rotation modulo
+8 pts 10m
Lists & Arrays easy

Running Total Window

Implement a function that returns a list of running totals, resetting to zero after each positive sum.

running-total sliding-window arrays
+8 pts 10m
Lists & Arrays easy

Normalize Array to Zero-One Range

Implement a function that normalizes a list of numbers to the range [0,1] using min-max scaling.

arrays normalization scaling
+8 pts 12m
Lists & Arrays easy

Boolean Mask Filter

Write a function that filters a list using a boolean mask and returns the matching elements as a list.

mask filter list
+8 pts 10m
Lists & Arrays easy

Flatten Multidimensional Lists

Write a function that flattens arbitrarily nested lists of integers into a single list.

recursion nested-lists flatten
+10 pts 15m
Lists & Arrays easy

Concatenate Horizontally

Write a function that horizontally concatenates two 2D lists into a new 2D list.

lists concatenation matrix
+8 pts 10m
Lists & Arrays easy

Pad array edges

Implement a function that pads a list on both ends with a given value to a specified total length.

lists padding slicing
+7 pts 10m
Dicts & Sets easy

Merge dicts summing values

Write a function that merges two dictionaries by summing values for duplicated keys.

dicts merge sum
+10 pts 10m
Dicts & Sets easy

Are two lists the same multiset

Write a function that checks if two lists contain the same elements with the same multiplicities, ignoring order.

multiset dictionary counting
+10 pts 10m
Dicts & Sets easy

Word to Index Map

Create a function that returns a dictionary mapping each unique word to the index of its first occurrence.

dictionary mapping indexing
+10 pts 10m
Dicts & Sets easy

Missing keys default zero

Write a function to sum numeric values from dictionaries, treating missing keys as zero.

dictionaries sum defaults
+10 pts 12m
Dicts & Sets easy

Nested get with dotted path

Implement a function that safely retrieves a value from a deeply nested dictionary using a dot-separated path, returning a default if any key is missing.

dicts nested parsing
+8 pts 10m
Dicts & Sets easy

Common Keys of Two Dictionaries

Implement a function that finds keys shared by two dictionaries and returns them sorted.

dict set sorting
+8 pts 10m
Dicts & Sets easy

Union of Many Sets

Implement a function that takes any number of sets and returns a sorted list of their union.

sets union flatten
+10 pts 10m
Dicts & Sets easy

Mode of a list via counting

Implement a function that returns the mode of a list, resolving ties by the element that appears first.

counting dictionaries mode
+10 pts 15m
Dicts & Sets easy

Replace keys with a mapping

Write a function that renames keys in a dictionary according to a mapping, with duplicate handling.

dicts mapping transformation
+8 pts 10m
Dicts & Sets easy

Symmetric Difference

Write a function that computes the symmetric difference of two lists, returning a sorted list of unique elements.

sets set-operations symmetric-difference
+8 pts 10m
Dicts & Sets easy

Subset of another set

Write a function that checks if every element of one set is contained in another.

sets subset membership
+10 pts 10m
Dicts & Sets easy

Frequency sort descending

Write a function that sorts a list by frequency descending while preserving original order for ties.

frequency sorting dict
+10 pts 15m
Dicts & Sets easy

Count Pairs with Sum

Implement a function that counts the number of distinct pairs in a list summing to a target.

dictionary pair-counting hash-map
+10 pts 15m
Dicts & Sets easy

Group by Department

Implement a function that groups a list of employee dictionaries by department, returning a dictionary keyed by department with lists of employee dictionaries.

dicts loops grouping
+8 pts 10m
Dicts & Sets easy

Revenue by Month

Write a function that groups a list of (date, amount) pairs by year-month and returns total revenue per month as a sorted dictionary.

dict aggregation sales
+8 pts 10m
Dicts & Sets easy

Pivot sales by product

Write a function that pivots sales records into a dictionary keyed by product with monthly totals.

dicts grouping aggregation
+10 pts 15m
Functions & Closures easy

Bind First Argument

Implement bind_first_arg, a decorator that fixes the first argument of any function.

decorators closures functions
+10 pts 15m

Showing 145–168 of 286 challenges · easy

Guide: free Python coding challenges

Practice Python by solving problems

PythonSkillset challenges are hands-on coding exercises from beginner to advanced. Open a challenge, read the problem, write Python in the split-pane editor, and run tests with Pyodide — no install required.

How to use the arena

  1. Pick a category — basics, algorithms, strings, and more
  2. Open a challenge, read the statement, and edit the starter code
  3. Run tests, fix failures, then try a related quiz or tutorial lesson

Challenges vs tutorials and quizzes

Challenges test what you can build under constraints. For guided teaching, use our Python tutorials. For quick checks, try quizzes or copy snippets from code samples.