Maison  >  Article  >  développement back-end  >  Introduction à 5 fonctions d'ordre supérieur intégrées couramment utilisées en Python (avec code)

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

不言
不言avant
2019-04-12 11:29:574024parcourir

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]
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
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]
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]


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)
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]
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)   # 返回函数调用的结果,返回值是一个数值
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
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
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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer