Python >> Tutoriel Python >  >> Python

Liste de retour Python à partir de la fonction

Avez-vous besoin de créer une fonction qui renvoie une liste mais tu ne sais pas comment ? Pas de soucis, dans soixante secondes, vous saurez ! Aller! ?

Une fonction Python peut renvoyer n'importe quel objet tel qu'une liste. Pour renvoyer une liste, créez d'abord l'objet liste dans le corps de la fonction, affectez-le à une variable your_list , et renvoyez-le à l'appelant de la fonction en utilisant le mot-clé opération "return your_list “.

Par exemple, le code suivant crée une fonction create_list() qui itère sur tous les nombres 0, 1, 2, …, 9, les ajoute à la liste your_list , et renvoie la liste à l'appelant de la fonction :

def create_list():
    ''' Function to return list '''
    your_list = []
    for i in range(10):
        your_list.append(i)

    return your_list

numbers = create_list()
print(numbers)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Notez que vous stockez la liste résultante dans la variable numbers . La variable locale your_list que vous avez créé dans le corps de la fonction n'est visible que dans la fonction mais pas en dehors de celle-ci. Donc, si vous essayez d'accéder au nom your_list , Python lèvera un NameError :

>>> print(your_list)
Traceback (most recent call last):
  File "C:\Users\xcent\Desktop\code.py", line 9, in <module>
    print(your_list)
NameError: name 'your_list' is not defined

Pour résoudre ce problème, affectez simplement la valeur de retour de la fonction — une liste — à une nouvelle variable et accédez au contenu de cette nouvelle variable :

>>> numbers = create_list()
>>> print(numbers)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Il existe de nombreuses autres façons de renvoyer une liste en Python. Par exemple, vous pouvez utiliser à la place une déclaration de compréhension de liste qui est beaucoup plus concise que le code précédent, mais crée la même liste de nombres :

def create_list():
    ''' Function to return list '''
    return [i for i in range(10)]


numbers = create_list()
print(numbers)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

La compréhension de liste est une fonctionnalité Python très utile qui vous permet de créer dynamiquement une liste en utilisant la syntaxe [expression context] . Vous itérez sur tous les éléments dans un contexte donné "for i in range(10) ", et appliquer une certaine expression, par exemple, l'expression d'identité i , avant d'ajouter les valeurs résultantes à la liste nouvellement créée.

Si vous avez besoin d'en savoir plus sur la compréhension des listes, n'hésitez pas à consulter ma vidéo explicative :

Une façon intéressante de renvoyer une liste à partir d'une fonction consiste à utiliser les fonctions lambda.

Une fonction lambda est une fonction anonyme en Python. Il commence par le mot-clé lambda , suivi d'une liste de zéro ou plusieurs arguments séparés par des virgules, suivis des deux-points et de l'expression de retour. Utilisez la notation entre crochets [ ... ] ou le list() constructeur pour créer et renvoyer un objet de liste.

L'extrait de code suivant utilise une combinaison de fonctionnalités.

  • La fonction lambda crée dynamiquement un objet fonction et l'affecte à la variable create_list . Vous pouvez ensuite appeler la fonction comme avant avec create_list() .
  • L'expression de compréhension de liste crée une liste et la renvoie en même temps dans une seule ligne de code. Elle ne peut pas être plus concise que cela.
create_list = lambda : [i for i in range(10)]

numbers = create_list()
print(numbers)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]