Grundlegende praktische Python-Bedienung

Python-Komfort

Listenverständnis

Normalerweise erstellen wir eine Liste:

def fun(x):
    return x ** 2
l = []
for i in range(5):
    l.append(fun(i))

Es kann tatsächlich mit einem Listenverständnis vereinfacht werden:[* for i in *]

[fun(i) for i in range(5)]

Gleichzeitig unterstützen Listenverständnisse auch mehrere Verschachtelungsebenen:

In:	[m + '_' + n for m in ['a','b'] for n in ['v','e']]
Out:['a_v', 'a_e', 'b_v', 'b_e']

bedingte Zuweisung

Um ein Beispiel zu geben, kürzen Sie die Elemente in der Liste, die 5 überschreiten, d. h. diejenigen, die 5 überschreiten, werden durch 5 ersetzt, und diejenigen, die kleiner als 5 sind, behalten den ursprünglichen Wert:

In:		L = [1, 2, 3, 4, 5, 6, 7]
		[i if i <= 5 else 5 for i in L]
Out:	[1, 2, 3, 4, 5, 5, 5]

Anonyme Funktion und Kartenmethode

Die Definition einer Funktion weist im Allgemeinen eine klare Zuordnungsbeziehung auf, und wir können sie in Form einer anonymen Funktion prägnant ausdrücken

fun = lambda x : x ** 2

Aber offensichtlich haben wir die Bedeutung von „Anonymität“ verletzt. In vielen Fällen müssen wir eine Funktion nicht an mehreren Stellen aufrufen, sodass uns der Name der Funktion oft egal ist, sondern nur die Zuordnungsbeziehung der Funktion.

(lambda x: x ** 2)(8)
[(lambda x: x ** 2)(i) for i in range(5)]

Und für die oben erwähnte anonyme Funktionszuordnung zum Listenverständnis verwenden wir die Kartenfunktion, um dies zu erreichen. Map gibt ein Kartenobjekt zurück, das in eine Liste für Liste konvertiert werden muss

list(map(lambda x, y:str(x)+"_"+y,range(5),list('abcde')))

zip-Objekt und Enumerate-Methode

  • Die Zip-Funktion kann mehrere iterierbare Objekte in ein aus Tupeln bestehendes iterierbares Objekt packen und ein Zip-Objekt zurückgeben. Die entsprechenden Verpackungsergebnisse können über Tupel und Liste erhalten werden
l1 = ('avd')
l2 = ('efsf')
list(zip(l1,l2))
[('a', 'e'), ('v', 'f'), ('d', 's')]
for i,v in zip(range(len(l)),l):
    print(i,' ',v,)
0   a
1   v
2   r
3   d
  • enumerate ist ein spezielles Paket, das die Durchlaufsequenznummer des iterierten Elements beim Iterieren binden kann
l = list('avrd')
for i, v in enumerate(l):
    print(i,v)
0   a
1   v
2   r
3   d

Ich denke du magst

Origin blog.csdn.net/weixin_64632836/article/details/127695584
Empfohlen
Rangfolge