Introduction à 5 fonctions d'ordre supérieur intégrées couramment utilisées en Python (avec code)

不言
Libérer: 2019-04-12 11:29:57
avant
4089 Les gens l'ont consulté

Cet article vous présente une introduction à 5 fonctions d'ordre élevé intégrées couramment utilisées en Python (avec code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. aide.

Python intègre des fonctions d'ordre supérieur couramment utilisées :

1 Programmation fonctionnelle

La fonction elle-même peut être affectée à une variable, et la variable devient une fonction après l'affectation ;

permet de passer la fonction elle-même dans une autre fonction en tant que paramètre

permet de renvoyer une fonction.

1. La fonction map()

est une fonction d'ordre supérieur intégrée en Python. Elle reçoit une fonction f et une liste,

<.> et passe La fonction f agit tour à tour sur chaque élément de la liste, obtient une nouvelle liste et renvoie

def add(x):
    return x+x

print(map(add,[1, 2, 3]))
# Out:<map object at 0x00000239E833DE48>
print(list(map(add,[1, 2, 3])))
# Out:[2, 4, 6]
Copier après la connexion
2,

fonction reduce()

La fonction réduire() est également une fonction d'ordre supérieur intégrée à Python.

Les paramètres reçus par la fonction réduire() sont similaires à map(), une fonction f et une liste, mais le comportement est différent de map(). La fonction f transmise par réduire() doit recevoir. deux paramètres,

reduce() appelle à plusieurs reprises la fonction f sur chaque élément de la liste et renvoie la valeur du résultat final.

Dans Python3, la fonction réduire() a été supprimée de l'espace de noms global. Elle est désormais placée dans le module functools. Si vous souhaitez l'utiliser,

vous devez l'importer functools. module pour appeler la fonction réduire() :

from functools import reduce


def prod(x, y):
    return x*y


print(reduce(prod, [2, 4, 5, 7, 12]))
# Out:3360  # 2*4*5*7*12
# reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100
print(reduce(prod, [2, 4, 5, 7, 12], 100))
# Out:336000    # 2*4*5*7*12*100
Copier après la connexion
3,

fonction filter()

est une autre fonction intégrée fonction de Python Fonction d'ordre supérieur utile, la fonction filter() reçoit une fonction f et une liste

La fonction de cette fonction f est de juger chaque élément et de renvoyer automatiquement True ou False. Filtrez les éléments qui ne remplissent pas les conditions et

renvoie une nouvelle liste composée d'éléments qui remplissent les conditions.

import math

def is_sqr(x):
    return math.sqrt(x) == int(math.sqrt(x))

print(list(filter(is_sqr, range(1, 101))))
# Out:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Copier après la connexion
4. La fonction

sorted()

effectue des opérations de tri sur tous les objets itérables. La différence entre

sort et sorted :

sort est une méthode appliquée sur une liste, et sorted peut trier tous les objets itérables. La méthode de tri de

list renvoie une opération sur une liste existante, tandis que la méthode triée par fonction intégrée renvoie une nouvelle liste plutôt qu'une opération basée sur la liste d'origine.

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

iterable -- objet itérable.

clé -- Principalement utilisée pour les éléments de comparaison, avec un seul paramètre. Les paramètres de fonction spécifiques sont extraits de l'objet itérable et spécifient un élément dans l'objet itérable pour le tri.

reverse -- règle de tri, reverse = True pour l'ordre décroissant, reverse = False pour l'ordre croissant (par défaut).

Renvoyer la liste réorganisée

print(sorted([5, 2, 3, 1, 4]))
# Out:[1, 2, 3, 4, 5]
print(sorted({1:&#39;D&#39;, 2:&#39;B&#39;, 3:&#39;B&#39;, 4:&#39;E&#39;, 5: &#39;A&#39;}))
# Out:[1, 2, 3, 4, 5]
Copier après la connexion


Utiliser la touche pour trier dans l'ordre inverse

example_list = [5, 0, 6, 1, 2, 7, 3, 4]
result_list = sorted(example_list, key=lambda x: x*-1)
print(result_list)
Copier après la connexion
Pour trier dans l'ordre inverse, Vous pouvez également passer le troisième paramètre reverse=True :

example_list = [5, 0, 6, 1, 2, 7, 3, 4]
print(sorted(example_list, reverse=True))
# Out:[7, 6, 5, 4, 3, 2, 1, 0]
Copier après la connexion
5. Les fonctions Python peuvent non seulement renvoyer des types de données tels que int, str, list, dict, etc., mais également renvoyer des fonctions !

Veuillez noter la différence entre la fonction de retour et la valeur de retour :

def my_abs():
    return abs  # 返回函数,返回函数可以把一些计算延迟

def my_abs2(x):
    return abs(x)   # 返回函数调用的结果,返回值是一个数值
Copier après la connexion
def calc_prod(lst):
    def lazy_prod():
        prod = 1
        for i in lst:
            prod = prod*i
        return prod
    return lazy_prod
f = calc_prod([1, 2, 3, 4])
print(f())
# Out:24
Copier après la connexion
5.1 Pourquoi définir la fonction lazy_prod() et la fonction de retour cal_prod() ?

Support Python La syntaxe de base de la fonction return

def f():
    print(&#39;call f()...&#39;)
    # 定义函数g:
    def g():
        print(&#39;call g()...&#39;)
    # 返回函数g:
    return g
Copier après la connexion
ne renvoie que la fonction :


La fonction return peut retarder l'exécution de certains calculs. Par exemple, si vous définissez une fonction somme normale :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal