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

Convert Binary Number List

Given a list of bits (0s and 1s) in most-significant-first order, return the equivalent integer value.

binary lists conversion
+8 pts 10m
Lists & Arrays easy

Insertion Sort

Implement insertion sort that sorts a list in-place and returns the same list.

sorting in-place algorithms
+8 pts 12m
Lists & Arrays easy

Intersection two lists length

Return the number of distinct elements that appear in both input lists.

lists sets intersection
+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

Rolling Window Mean

Given a list of numbers and a window size k, return a list of the means of every contiguous subarray of length k.

sliding-window lists averaging
+10 pts 12m
Lists & Arrays easy

Linear Interpolation Array

Given an array with some None values, replace them by linear interpolation between the nearest known values.

arrays interpolation math
+8 pts 12m
Lists & Arrays easy

One Hot Encode Labels

Given a list of categorical labels, return a list of one-hot encoded vectors based on the sort order of unique labels.

lists encoding matrices
+10 pts 10m
Lists & Arrays easy

Average Salary by Department

Given a list of employee tuples (name, department, salary), return a dictionary mapping each department to its average salary.

averages dictionaries lists
+10 pts 15m
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

Word frequency

Return a dict mapping each word to its count in the sentence.

dict counter
+10 pts 10m
Dicts & Sets easy

List intersection

Return the sorted list of elements common to both lists.

sets intersection
+8 pts 8m
Dicts & Sets easy

First non-repeating character

Find the index of the first character that appears only once.

dict strings counter
1
+12 pts 12m
Dicts & Sets easy

Most frequent element

Return the element that appears most often in a list.

counter dict
+8 pts 8m
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

Group names by first letter

Given a list of names, return a dictionary mapping each first letter to all names starting with that letter in original order.

dictionaries strings grouping
+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

Keys Sorted by Value Descending

Given a dictionary mapping strings to integers, return a list of keys sorted by value descending, and when values tie, alphabetically ascending.

sorting dictionaries ordering
+8 pts 10m
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

Showing 241–264 of 556 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.