PYTHON

Python min(): Syntax, Usage, and Examples

The min() function in Python returns the smallest item from an iterable or the smallest of two or more arguments. It’s one of Python’s built-in functions and is commonly used in everyday programming for tasks like finding the minimum value in a list, comparing variables, or working with collections of data. Whether you’re sorting values, checking thresholds, or doing analytics, learning how to use min() efficiently will simplify your code and reduce the need for manual comparisons.

Let’s explore how the Python min function works and when to use it effectively.

How to Use the Python min() Function

The syntax for min() is simple and flexible:

min(iterable, *[, key, default])
min(arg1, arg2, *args[, key])
  • You can pass a list, tuple, or any iterable.
  • You can pass two or more individual values.
  • The optional key parameter allows you to customize comparison logic.
  • The default parameter sets a fallback value if the iterable is empty.

Example with an Iterable

numbers = [3, 7, 1, 9]
print(min(numbers))  # Output: 1

Example with Multiple Arguments

print(min(10, 5, 20))  # Output: 5

This compares the values directly and returns the smallest one.

When to Use min() in Python

Use the min() function when you:

  • Need to find the smallest value in a list or dataset
  • Want to compare multiple values directly
  • Are working with sorted or unsorted collections
  • Need to apply custom comparison logic (like based on object attributes)
  • Want a cleaner alternative to writing your own comparison loops

The Python min function is ideal when you want clarity, readability, and performance all at once.

Practical Examples of min() in Python

Find the Smallest Number in a List

data = [5, 2, 9, 1, 7]
smallest = min(data)
print(smallest)  # Output: 1

This is the most straightforward and common use case.

Compare Variables

a = 12
b = 4
c = 15

lowest = min(a, b, c)
print(lowest)  # Output: 4

Perfect for situations where you want to find the smallest among known values.

Find the Minimum Length String

names = ["Ann", "Joanna", "Sam"]
shortest_name = min(names, key=len)
print(shortest_name)  # Output: Ann

The key parameter lets you specify a function that defines the basis for comparison—in this case, string length.

Use min() with Dictionaries

grades = {"Alice": 88, "Bob": 91, "Charlie": 84}

lowest_score = min(grades.values())
print(lowest_score)  # Output: 84

To get the student with the lowest score:

lowest_student = min(grades, key=grades.get)
print(lowest_student)  # Output: Charlie

This use of key with dict.get is handy when you're dealing with mappings.

Provide a Default Value

empty_list = []
result = min(empty_list, default=0)
print(result)  # Output: 0

Use the default argument to avoid errors when working with potentially empty lists.

Learn More About the Python min Function

Using min() on Tuples and Sets

values = (9, 3, 6)
print(min(values))  # Output: 3

unique_numbers = {5, 8, 2, 10}
print(min(unique_numbers))  # Output: 2

Python works with any iterable, including sets and tuples.

Custom Comparison Using a Lambda

Suppose you have a list of dictionaries representing books:

books = [
    {"title": "Book A", "pages": 300},
    {"title": "Book B", "pages": 150},
    {"title": "Book C", "pages": 500},
]

shortest = min(books, key=lambda x: x["pages"])
print(shortest["title"])  # Output: Book B

This lets you search for the “minimum” based on a nested property.

Compare Dates and Times

from datetime import date

dates = [date(2024, 1, 1), date(2023, 12, 25), date(2024, 3, 15)]
earliest = min(dates)
print(earliest)  # Output: 2023-12-25

As long as the elements are comparable, min() works out of the box.

Nested Usage of min()

lists = [[3, 4, 1], [8, 2], [9, 0]]
min_overall = min(min(lst) for lst in lists)
print(min_overall)  # Output: 0

This works well for matrices or nested data structures.

Real-World Use Cases

Find the Cheapest Product

products = [
    {"name": "Laptop", "price": 999},
    {"name": "Tablet", "price": 499},
    {"name": "Phone", "price": 699}
]

cheapest = min(products, key=lambda p: p["price"])
print(cheapest["name"])  # Output: Tablet

Ideal for filtering catalog items or finding budget options.

Validate User Input Ranges

values = [12, 18, 9, 21]
if min(values) < 10:
    print("Some values are below the minimum threshold.")

Quickly check ranges without writing explicit loops.

Min in a List in Python for Analytics

If you’re analyzing data, you'll often want to know the minimum value across datasets:

temperatures = [71, 65, 68, 59, 73]
print("Coldest day temperature:", min(temperatures))

This works across financial, environmental, or experimental data.

Things to Watch Out For

Empty Iterable Without Default

min([])  # Raises ValueError

To avoid this, provide a default:

print(min([], default=0))

Incompatible Types

min(["apple", 2])  # Raises TypeError

Make sure elements in the iterable are of the same or comparable types.

min() Is Not Always Faster Than Loops

While it’s elegant and expressive, min() is still O(n), so it loops behind the scenes. If you're performing complex operations on each element, the key function can add overhead.

The Python min function gives you a reliable and concise way to find the smallest value in a sequence or among individual arguments. From numbers and strings to objects and dictionaries, you can use min() across data types and applications.

Learn to Code in Python for Free
Start learning now
button icon
To advance beyond this tutorial and learn Python by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH