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 aveccreate_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}