English English

Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/ard-site/templates/ardsite/library/Designer/Content/SingleArticle.php on line 198

Autres façons de créer des fonctions en Python

Vous pouvez également créer des fonctions d'une autre manière pour effectuer des opérations sur des objets (liste, tuples, etc.) de façon plus simple. Cela rend également votre code de programmation plus facile à lire.

Python offre également ces fonctions et commandes suivantes qui peuvent être utilisées avec (ou à la place de) la commande "def" :

 

commande lambda 

Cette commande est écrite dans la syntaxe suivante :
lambda arguments : votre expression

 

Vous écrivez votre variable (arguments) que vous utiliserez avant le double point " :". Votre expression qui utilise vos arguments est écrite après le point double.
Le résultat/valeur de votre expression est retourné lorsque vous appelez votre commande "lambda" définie.

La commande "lambda" peut être utilisée partout à la place d'une fonction définie par "def".

 

Exemple - Mes gains calculés par ma commande lambda définie "e" qui obtient mes coûts "c" et mes ventes "s" :

e = lambda k,s : s-k

Maintenant, nous pouvons appeler ma nouvelle commande lambda "e" qui renvoie le résultat de mon expression.

print(e(1000,2000)
1000

 

map()

Avec "map()", vous pouvez appliquer votre fonction définie à chaque élément d'un objet itérable défini ("liste", "tuple", etc.). Cette fonction "map()" retourne alors les résultats de la fonction appliquée (sur l'objet itérable défini) sous forme de liste.

La syntaxe de la fonction :

map(func, objet)

 

Exemple - Cette application calcule la seconde puissance de nombres donnés et l'affiche sous forme de liste:

def sndpower(n): 
return n * n 

evennumbers = (0, 2, 4, 6, 8) 
results = map(sndpower, evennumbers) 
print(list(results))
{0, 4, 16, 36, 64}

 

Vous pouvez aussi passer une commande "lambda" au lieu d'une fonction.

map(lambda n: n*n, evennumbers)

La fonction "map()" peut aussi obtenir plusieurs listes en argument.


map(func, objec1, objec2, ... objecn)


 

zip()

Cette fonction "zip()" a la même fonctionnalité que "map()" sauf que la longueur de la liste retournée est ajustée à la longueur de l'objet itérable le plus court défini.


Vous pouvez aussi écrire "None" à la place, si vous ne voulez pas utiliser une fonction.

zip(None, myobject)

 

Exemple:

a = [1,2,3,4,5]
b = [10,11,12]
results = zip(a, b)

print(list(results))
[(1, 10), (2, 11), (3, 12)]

 

 

reduce()

La fonction "reduce()" récupère les valeurs d'une séquence et retourne à partir de cela une valeur unique qui a été créée par vos fonctions définies. La valeur unique peut être la somme, la valeur moyenne, etc.

Vous devez importer le paquet Python "functools".

 

from functools import reduce

La syntaxe de la fonction:

reduce(func, seq)

 

Exemple - Ce programme crée la somme d'une séquence:

from functools import reduce

numbers = [4,9,17,50,130]

def createsum(x, y):
return x+y;

results = reduce(createsum, numbers)

print(results)

 

 

filter()

Cette fonction "filter()" utilise votre fonction de filtrage définie ("func") pour filtrer un objet ("object") qui ne répond pas aux exigences de votre fonction "func".
La fonction de filtrage "func" est une fonction qui obtient une valeur et retourne vrai ou faux.

La syntaxe de la fonction:

filter(func, seq)


Exemple:

numbers = [2, 4, 6, 60, 150]

def twodigits(x):
if (x >= 10):
return True
else:
return False

results = filter(twodigits, numbers)
print(list(results))
[60, 150]

 

Si vous utilisez "None" au lieu d'une fonction, alors toutes les valeurs "true" sont affichées.
Voici un exemple, où il y a des valeurs qui ne sont pas "true":

mylist = [-10, 0, False, '', 4, 6, 60, 150]

results = filter(None, mylist)
print(list(results))
[-10, 4, 6, 60, 150]

 

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok