How to use the Python min function?
Tags: python, tutorial, beginners
Published: 2021-12-16 12:54:17

In this tutorial, we learn how to use the Python min function. This is one of the many functions in Python, like max(), len(), abs(), etc. We can usethem without importing a module or a library.

## Table of contents
- [What does the min() function do in Python?](#what-does-the-min-function-do-in-python)
- [Syntax of the Python min() function](#syntax-for-the-python-min-function)
- [Using the min() function with iterables](#using-the-min-function-with-iterables)
- [Using the min() function with multiple arguments](#using-the-min-function-with-multiple-arguments)
- [Closing thoughts](#closing-thoughts)

## What does the min() function do in Python?
Python’s min() function is primarily used to return the smallest item in an iterable. Furthermore it is also used to find the smallest item between two or more parameters or arguments. Example: print(min(2, -1.0, 30, -9))

## Syntax for the Python min() function
The min() function is written in two forms:

### 1. Syntax to find the smallest item in an iterable
```python
min(iterable, *iterables, key, default)
```
a. iterable - an iterable; can be list, tuple, set, dictionary, etc.
b. *iterables (optional) - any number of iterables; can be more than one.
c. key (optional) - the key function where the iterables are passed and comparison is performed based on its returned value.
d. default(optional) - default value if the given iterable is empty.

### 2. Syntax to find the smallest item between two or more objects
```python
min(arg1, arg2, *args, key)
```
a. arg1 - an object; can be numbers, strings, etc.
b. arg2 - an object; can be numbers, strings, etc.
c. *args (optional) - any number of objects.
d. key (optional) - key function where each argument is passed, and comparison is performed based on its return value.

## Using the min() function with iterables
Finding the smallest item in a string using the Python min() function
If the elements in an iterable are strings, the earliest element in alphabetical order is returned as the output.

### Input:
```python
languages = ["Spanish", "English", "French", "Italian"]
small_string = min(languages)      
print("The smallest string in languages is:", small_string)
```
### Output:
```python
The smallest string in languages is: English
```
### Finding the smallest item in a list using the Python min() function
Here we will take the input as a list with integer values in it. And using the min() function we will find the smallest value integer in the list.

### Input:
```python
num = [3, -2, 1, 15, 10, 0.6]
small_num = min(num)
print("The smallest number is:", small_num)
```       
### Output:
```python
The smallest number is: -2
```
Finding the smallest key and value in dictionaries using the Python min() function
For dictionaries we can find both the smallest key and the smallest value pair individually.

### Input:
```python
sample_dict = {1: 2, 3: 4, -5: 6, -7: 8}

# finding the smallest key 
key_one = min(sample_dict)
print("The smallest key in sample_dict is:", key_one)   

# finding the key whose value is the smallest
key_two = min(sample_dict, key = lambda k: sample_dict[k])
print("The key with the smallest value in sample_dict:", key_two)  

# getting the smallest value
print("The smallest value found is:", sample_dict[key_two])    
```        
### Output:
```python
The smallest key in sample_dict is: -7
The key with the smallest value in sample_dict: 1
The smallest value found is: 2
```
The second time we used the min() function, we passed a lambda function to the key parameter. The function returns the values of dictionaries. So the key having the smallest value is computed instead of the keys themselves.

## Using the min() function with multiple arguments
Here, we have called on the min() function while passing multiple arguments to be evaluated. Python’s min() function evaluates each element and then returns the smallest value.

### Input:
```python
print(min(2, -1.0, 30, -9)) 
print(min("f", "l", "e", "x", "i"))
print(min(7.14, -1.12, 7.66))
```
### Output:
```python
-9
e
-1.12
```
*Points to note:*
When we pass an empty iterator, a ValueError exception is raised. To avoid this, we can pass the default parameter.
```python
print(min([]))  # here the empty iterable causes ValueError
# The solution
print(min([], default=0)) #negating the error with default value
```
If more than one iterator is passed then the smallest item from the given iterators is returned.
### Input:
```python
list_one = [11,12,13]
list_two = [2, 4, 6, 8, 10, 12]
min_val = min(list_one, list_one, key = len)
print("The minimum value : ", min_val) 
```  
### Output:
```python
The minimum value :  [11, 12, 13]
```
In this example, the minimum value in terms of the length of the list is returned because the key=len is applied.

## Closing thoughts
We have learnt how to find the minimum value using the min() Python function. We can apply the min() function to any data type such as list, tuple, dictionary, etc., as needed. Python also has a function called max() which helps us find the largest value among the passed iterables or arguments. One can read more about the max() function here.