Python >> Tutoriel Python >  >> Python

Python Return Set From Function

Avez-vous besoin de créer une fonction qui renvoie un ensemble 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'un ensemble. Pour renvoyer un ensemble, créez d'abord l'objet ensemble dans le corps de la fonction, affectez-le à une variable your_set , et renvoyez-le à l'appelant de la fonction en utilisant le mot-clé opération "return your_set “.

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

def create_set():
    ''' Function to return set '''
    your_set = set()
    for i in range(10):
        your_set.add(i)

    return your_set

numbers = create_set()
print(numbers)
# {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

Notez que vous stockez l'ensemble résultant dans la variable numbers . La variable locale your_set 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_set , Python lèvera un NameError :

>>> print(your_set)
Traceback (most recent call last):
  File "C:UsersxcentDesktopcode.py", line 9, in <module>
    print(your_set)
NameError: name 'your_set' is not defined

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

>>> numbers = create_set()
>>> print(numbers)
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

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

def create_set():
    ''' Function to return set '''
    return {i for i in range(10)}

numbers = create_set()
print(numbers)
# {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

La compréhension des ensembles est une fonctionnalité Python très utile qui vous permet de créer dynamiquement un ensemble 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 à l'ensemble nouvellement créé.

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

Article connexe : Une introduction simple à la compréhension d'ensembles en Python

Une façon intéressante de renvoyer un ensemble à 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 le set() constructeur pour créer et renvoyer un objet défini.

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_set . Vous pouvez ensuite appeler la fonction comme avant avec create_set() .
  • L'expression de compréhension d'ensemble crée un ensemble et le renvoie en même temps dans une seule ligne de code. Elle ne peut pas être plus concise que cela.
create_set = lambda : {i for i in range(10)}

numbers = create_set()
print(numbers)
# {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}