Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Module « builtins »

Fonction min - module builtins

Signature de la fonction min

 
min(iterable, *[, default=obj, key=func]) -> value
min(arg1, arg2, *args, *[, key=func]) -> value

Description

Cette fonction permet de calculer la valeur minimale parmi un ensemble de valeurs. Deux principales syntaxes d'appels sont supportées par cette fonction.

Vous pouvez utiliser cette fonction avec des types de données quelconques, mais lors d'un appel, toutes les données devront être de la même nature. Si le type considéré propose un opérateur <, alors rien de plus n'est requis.

>>> # Cas ou les données ne sont pas compatibles
>>> data = [10, "toto", True]
>>> min(data)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'str' and 'int'
>>> 
>>> 
>>> # Ici, toutes les données sont du même type, donc tout est ok !
>>> from datetime import date
>>> dates = [date(2015, 1, 1), date(2020, 6, 6), date(2010, 8, 9)]
>>> min(dates)
datetime.date(2010, 8, 9)
>>> 

Dans le cas où les données à traiter ne sont pas directement comparables, vous avez la possibilité de spécifier une fonction, ou une lambda, permettant de calculer une valeur comparable pour chacune des données d'origine.

>>> data = [{"first_name": "James", "last_name": "Bond", "kills": 1_007},
...         {"first_name": "Jason", "last_name": "Bourne", "kills": 954}]
>>> min(data)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'dict' and 'dict'
>>> min(data, key=lambda spy: spy["kills"])
{'first_name': 'Jason', 'last_name': 'Bourne', 'kills': 954}
>>>

min.__doc__

min(iterable, *[, default=obj, key=func]) -> value
min(arg1, arg2, *args, *[, key=func]) -> value

With a single iterable argument, return its smallest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
With two or more arguments, return the smallest argument.

Paramètres

ParamètreDescription
 iterable : iterable 
La collection dans laquelle rechercher la plus petite valeur.
 arg1, arg2, *args : object 
Des données, du coup hors collection, dans lesquelles rechercher la plus petite valeur. Avec cette manière d'invoquer la fonction min, au moins deux paramètres sont requis.
 default : object 
Si le premier paramètre est une collection vide, ce paramètre nommé indique la valeur retournée par la fonction min. Ce paramètre existe depuis Python 3.4.
 key : function 
Une fonction, ou une lambda, permettant de produire le critère de comparaison de chaque donnée, au cas où les données d'origine ne seraient pas directement comparables.

Valeur de retour

La valeur de retour est de type object.

Elle correspond à la plus petite information présente parmi les données à comparer.

Exception

Exemple(s) de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
#!/usr/bin/python3

# Une classe permettant de représenter le concept de nombres rationnels.
class Rational:
    
    # Ceci est le constructeur de notre classe Rational
    def __init__(self, num, den):
        if den == 0:
            raise ValueError("denominator cannot be null")
        self.num = num
        self.den = den

    # Cette méthode permet de transformer nos rationnels en chaînes de caractères.
    def __str__(self):
        return f"[{self.num}/{self.den}]"
    
    # A noter : la classe ne fournit pas, volontairement, d'opérateur <
    # Il va donc être nécessaire d'utiliser une fonction/lambda de comparaison.
    

if __name__ == '__main__':
    # On construit une liste de trois nombres rationnels.
    data = [Rational(7, 2), Rational(1, 3), Rational(2, 3)]
    
    # On recherche la plus petite valeur et on l'affiche.
    m = min(data, key=lambda rat: rat.num / rat.den)
    print(f"Le plus petit rationnel de la liste est {m}")
Exemple d'utilisation de la fonction min.

Et voici les résultats produits par cet exemple.

$> python3 sample.py
Le plus petit rationnel de la liste est [1/3]
$> 

Voir aussi

La classe list

Fonction max
Fonction sum