Exemples détaillés d'utilisation des fonctions avancées de Python

零到壹度
Libérer: 2018-05-15 14:20:23
original
2453 Les gens l'ont consulté

Cet article partage avec vous une explication détaillée de l'utilisation des fonctions avancées de Python avec des exemples. Le contenu est assez bon. J'espère qu'il pourra aider les amis dans le besoin.

Problèmes de paramètres de fonction

Trois situations de base

  • fun(a,b)

  • fun(a,b) b est un objet itérable

  • fun(a,**b) b est un objet d'itération avec un type de récupération, à l'intérieur du corps de la fonction Lors de l'analyse, cela équivaut à un dictionnaire

ls = [i for i in range(10)]
#print(ls)
def fun1(a,*b):
    for i in b:
        print(a,i)
#fun1(1,*ls)

def fun2(name,age,**kw):
    print("name:",name,"age:",age,"other:",kw)

fun2('fanhaitao','26',参数= 'random')
Copier après la connexion
**kw参数把键值对转换成字典的形式
Copier après la connexion

fonction anonyme

lambda

  1. Il n'y a pas de valeur de retour, la valeur de retour est la valeur de l'expression

  2. La fonction n'a pas de nom, pas besoin de s'inquiéter des conflits de noms

  3. La fonction anonyme est également un objet fonction Vous pouvez également attribuer la fonction anonyme à une variable. et utilisez la variable pour appeler la fonction

fun3 = lambda x:x+1
print(fun3(99))

#100
fun4 = lambda x,y :x*x + y*y
print(fun4(3,4))
#25
Copier après la connexion

Decorator@

Cette façon d'ajouter dynamiquement des fonctionnalités tout en le code est en cours d'exécution est appelé un "décorateur" (Decorator)

Décorateur sans paramètres

#定义一个装饰器
def log(func):
    def wrapper(*args,**kw):
        print('call %s()' % func.__name__)
        return func(*args,**kw)
    return wrapper
@log
def now():
    print('2018-3-29')
    
now()
Copier après la connexion

Relation logique interne du décorateur (ordre d'appel ): log() -> ; return wrapper() -> return func() -> 🎜> Fonction intégrée BiF

zip : combinez deux objets d'itération en un seul objet d'itération

#定义一个装饰器
def log(text):
    def decorator(func):
        def wrapper(*args,**kw):
            print('%s %s():' % (text,func.__name__))
            return func(*args,**kw)
        return wrapper
    return decorator
@log("可爱的参数")
def now():
    print('2018-3-29')

now()
Copier après la connexion

Remarque : les variables redondantes sans correspondance seront be Discard

enumerate : renvoie un objet itérable, composé d'une position + élément

a = [1,2,3]
b = 'abcde'
for i in zip(a,b):
    print(i)
for i,j in zip(a,b):
    print("Index:",i,";Item:",j)
Copier après la connexion

filter : fonction de filtre

for i,j in enumerate('abcde'):
    print(i,j)
Copier après la connexion

Deux paramètres, le premier est un paramètre, le second est un objet itérable et la valeur renvoyée est également Objet itérable ; si l'objet itérable dans le paramètre est True dans la fonction, la valeur sera conservée, sinon pass

map

L'utilisation est similaire au filtre, avec les différences suivantes :
print(list(filter(lambda x:(x*x+x+2)%8 == 0,range(100))))
Copier après la connexion


La fonction dans le paramètre opère sur chaque objet d'itération

  • Renvoyer l'objet manipulé

  • réduire

print(list(map(lambda x:x**2,range(5))))
Copier après la connexion
Dans la bibliothèque functools

  • func reçoit 2 paramètres,

  • réduire Continuer le calcul cumulé du résultat avec l'élément suivant de la séquence

  • #5050

Recommandations associées :
from functools import reduce
add = lambda x,y:x+y
ls = [i for i in range(101)]
print(reduce(add,ls))
Copier après la connexion


Fonctions avancées de Python

Collection de fonctions Python et syntaxe avancée

Utilisation avancée des fonctions Python

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:php.cn
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