Partagez quelques fonctions utiles de Python d'ordre supérieur

Qu'est-ce qu'une fonction d'ordre supérieur?

Fonction d'ordre supérieur: une fonction peut être passée en tant que paramètre à une autre fonction, ou la valeur de retour d'une fonction est une autre fonction (si la valeur de retour est la fonction elle-même, elle est récursive), et l'une d'elles est une fonction d'ordre supérieur.


map () fonction de mappage

Insérez la description de l'image ici

Comme le montre la figure ci-dessus, la fonction map () est en fait une relation de mappage un-à-un

Utilisation: La fonction map () reçoit deux paramètres, l'un est une fonction et l'autre est une séquence. La carte appliquera la fonction passée à chaque élément de la séquence à son tour et retournera le résultat sous forme d'itérateur.

  • Remarque: la fonction map () renvoie un itérateur, qui doit être converti manuellement en séquence

Donnez une châtaigne:

Code:

func = lambda x: x**2

L'effet est le suivant:

>>> map(func, [1, 2, 3, 4, 5])
<map object at 0x00000268C7446188>	#函数返回值其实是一个迭代器
>>> list(map(func, [1, 2, 3, 4, 5]))
[1, 4, 9, 16, 25]	#手动将其转换成列表

Donnez deux autres châtaignes:

>>> list(map(int, "123456789"))
[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> set(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
{
    
    '5', '8', '3', '7', '6', '4', '1', '2', '9'}

filter () fonction de filtre

Utilisation: filter () reçoit une fonction fonction et une séquence. La fonction de cette fonction est de juger chaque élément de la séquence et de renvoyer Vrai ou Faux. Filter () filtre automatiquement les éléments non qualifiés en fonction du résultat du jugement et renvoie Un itérateur d'une nouvelle séquence d'éléments éligibles.

Donnez une châtaigne:

Code:

def func(x):
    /*保留整数序列中的偶数部分*/
    if x % 2 == 0:
        return True
   	else:
        return False

L'effet est le suivant:

>>> list(filter(func, [x for x in range(1, 11)]))
[2, 4, 6, 8, 10]

Donnez une autre châtaigne

>>> names = ["Joker", "BatMan", "SuperMan", "me"]
>>> list(filter(lambda x:x.islower(), names))
['me']		#卑微的我

fonction réduire ()

Fonction: accumuler les éléments dans la séquence de paramètres

Comment utiliser: Effectuez les opérations suivantes sur toutes les données dans une séquence: utilisez la fonction fonction (avec deux paramètres) passée à réduire pour opérer sur les premier et deuxième éléments de l'ensemble, et le résultat sera comparé au troisième Les données sont calculées avec la fonction fonction, et finalement un résultat est obtenu.

Remarque: 1. Contrairement aux deux fonctions ci-dessus, reduction () renvoie une valeur, pas un objet itérateur

2. En Python3, la fonction reduction () a été supprimée de l'espace de noms global. Elle est maintenant placée dans le module functools. Si vous voulez l'utiliser, vous devez appeler la fonction reduction () en introduisant le module functools

Donnez une châtaigne:

>>> from functools import reduce
>>> add = lambda x, y:x + y
>>> reduce(add, range(1, 101))
5050

fonction de tri personnalisé sorted ()

Rôle: trier tous les objets itérables

La différence entre tri et trié:

  1. sort est une méthode appliquée à la liste, trié peut trier tous les objets itérables;

  2. La méthode de tri de liste renvoie une opération sur une liste existante, tandis que la méthode de tri par fonction intégrée renvoie une nouvelle liste, et non une opération sur la base d'origine.

syntaxe triée:

sorted(iterable, key=None, reverse=False) 

Description du paramètre:

  • objet itérable-itérable
  • key - est principalement utilisé pour comparer l'élément, il n'y a qu'un seul paramètre, le paramètre de fonction spécifique est extrait de l'objet itérable, spécifiez un élément dans l'objet iterable à trier
  • règle de tri inversé, reverse = True pour l'ordre décroissant, reverse = False pour l'ordre croissant (par défaut)

Valeur de retour: la nouvelle liste après réorganisation

Donner une châtaigne

Description du titre:

  • Générez de manière aléatoire une liste de 10 nombres entiers allant de 1 à 100, triez les éléments avec des index à chiffres pairs dans l'ordre croissant et triez les éléments avec des indices à chiffres impairs dans l'ordre décroissant.
import random
ls = random.sample(range(1, 101), 10)
print(ls)		//排序前:[43, 71, 40, 4, 74, 58, 83, 55, 25, 54]
ls[::2] = sorted(ls[::2])
ls[1::2] = sorted(ls[1::2], reverse = True)
print(ls)		//排序后:[25, 71, 40, 58, 43, 55, 74, 54, 83, 4]

Donnez une autre châtaigne

Description du titre:

  • Générer aléatoirement une liste de 10 entiers allant de -100 à 100, triés par valeur absolue du plus petit au plus grand
import random
ls = random.sample(range(-100, 101), 10)
print(ls)		//排序前:[60, -87, -73, -91, 21, -66, -95, 67, -1, 79]
ls = sorted(ls, key = abs)
print(ls)		//排序后:[-1, 21, 60, -66, 67, -73, 79, -87, -91, -95]


Enfin, les châtaignes sont si délicieuses! Vraiment parfumé ~~

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_45590494/article/details/104364074
conseillé
Classement