Detaillierte Beispiele für die Verwendung erweiterter Python-Funktionen

零到壹度
Freigeben: 2018-05-15 14:20:23
Original
2456 Leute haben es durchsucht

Dieser Artikel gibt Ihnen eine detaillierte Erklärung der Verwendung erweiterter Python-Funktionen mit Beispielen. Der Inhalt ist ziemlich gut. Ich hoffe, er kann Freunden in Not helfen.

Probleme mit Funktionsparametern

Drei grundlegende Situationen

  • fun(a,b)

  • fun(a,b) b ist ein iterierbares Objekt

  • fun(a,**b) b ist ein iteratives Objekt mit einem Abruftyp innerhalb des Funktionskörpers Beim Parsen ist es ziemlich wörterbuch

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')
Nach dem Login kopieren
**kw参数把键值对转换成字典的形式
Nach dem Login kopieren

anonyme Funktion

Lambda

  1. Es gibt keinen Rückgabewert, der Rückgabewert ist der Wert des Ausdrucks

  2. Die Funktion hat keinen Namen, Sie müssen sich keine Sorgen über Namenskonflikte machen

  3. Anonyme Funktion ist auch ein Funktionsobjekt. Sie können die anonyme Funktion auch einer Variablen zuweisen und verwenden die Variable zum Aufrufen der Funktion

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

#100
fun4 = lambda x,y :x*x + y*y
print(fun4(3,4))
#25
Nach dem Login kopieren

Decorator@

Auf diese Weise können Sie dem Code dynamisch Funktionalität hinzufügen ausgeführt wird, wird als „Decorator“ (Decorator) bezeichnet

Decorator ohne Parameter

#定义一个装饰器
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()
Nach dem Login kopieren

Interne logische Beziehung des Decorators (Aufrufreihenfolge): log() -> ; return wrapper() -> return func() -> Integrierte BiF-Funktion

zip: Kombinieren Sie zwei Iterationsobjekte zu einem Iterationsobjekt

#定义一个装饰器
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()
Nach dem Login kopieren

Hinweis: Redundante nicht übereinstimmende Variablen werden verworfen

enumerate: gibt ein iterierbares Objekt zurück, bestehend aus Position + Element

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)
Nach dem Login kopieren

Filter: Filterfunktion

for i,j in enumerate('abcde'):
    print(i,j)
Nach dem Login kopieren

Zwei Parameter, der erste ist ein Parameter, der zweite ist ein iterierbares Objekt und der zurückgegebene Wert ist ebenfalls ein iterierbares Objekt ; wenn das iterierbare Objekt im Parameter in der Funktion True ist, wird der Wert beibehalten, andernfalls übergeben

map

Die Verwendung ähnelt dem Filter, mit den folgenden Unterschieden:
print(list(filter(lambda x:(x*x+x+2)%8 == 0,range(100))))
Nach dem Login kopieren


Die Funktion im Parameter arbeitet für jedes Iterationsobjekt

  • Das manipulierte Objekt zurückgeben

  • reduzieren

print(list(map(lambda x:x**2,range(5))))
Nach dem Login kopieren
In der Functools-Bibliothek

  • func empfängt 2 Parameter,

  • reduce Setzen Sie die kumulative Berechnung des Ergebnisses mit dem nächsten Element der Sequenz fort

  • #5050

Verwandte Empfehlungen:
from functools import reduce
add = lambda x,y:x+y
ls = [i for i in range(101)]
print(reduce(add,ls))
Nach dem Login kopieren


Erweiterte Funktionen von Python

Sammlung von Python-Funktionen und erweiterter Syntax

Erweiterte Nutzung von Python-Funktionen

Das obige ist der detaillierte Inhalt vonDetaillierte Beispiele für die Verwendung erweiterter Python-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage