Seitdem ich angefangen habe, Python zu lernen, habe ich beschlossen, eine Liste mit „Tricks“ zu führen, die ich häufig verwende. Immer wenn ich einen Code sehe, der mich denken lässt: „Cool, das funktioniert!“ (zum Beispiel auf StackOverflow, in Open-Source-Software usw.), probiere ich ihn aus, bis ich ihn verstehe, und füge ihn dann der Liste hinzu . Dieser Beitrag ist Teil einer bereinigten Liste. Wenn Sie ein erfahrener Python-Programmierer sind, entdecken Sie möglicherweise einige, die Sie nicht kennen, auch wenn Sie einige davon bereits kennen. Wenn Sie ein C-, C++- oder Java-Programmierer sind, der Python lernt oder gerade erst mit dem Programmieren beginnt, werden Sie viele davon sehr nützlich finden, so wie ich es getan habe.
Jeder Trick oder jede Sprachfunktion kann nur anhand von Beispielen ohne übermäßige Erklärung überprüft werden. Obwohl ich versucht habe, die Beispiele klar zu formulieren, werden einige von ihnen je nach Vertrautheit dennoch etwas kompliziert aussehen. Wenn Sie sich also nach dem Betrachten des Beispiels nicht sicher sind, kann der Titel genügend Informationen liefern, um den detaillierten Inhalt über Google zu erhalten.
Die Liste ist nach Schwierigkeitsgrad sortiert, wobei häufig verwendete Sprachfunktionen und -techniken ganz vorne stehen.
1,30 Maximale und minimale Elemente (heapq.nlargest und heapq.nsmallest)
>>> a = [random.randint(0, 100 ) for in xrange(100)]
>>> heapq.nsmallest(5, a)
[3, 3 , 5, 6, 8]
>>> heapq.nlargest(5, a)
[100, 100, 99, 98, 98]
1.31 Kartesisches Produkt (itertools.product)
>>> für p in itertools.product([1, 2, 3], [4, 5]):
( 1, 4)
(1, 5)
(2, 4)
(2, 5)
(3, 4)
(3, 5)
>>> für p in itertools.product([0, 1], repeat=4):
... print ''.join(str(x) for x in p)
...
0000
0001
0010
0011
0100
0101
0110 🎜 >
1010 1011 11001101 1110 1111 1.32 Kombination von Kombinationen und Ersetzungen (itertools.combinations und itertools.combinations_with_replacement)>>> ; für c in itertools.combinations([1, 2, 3, 4, 5], 3): ... print ''.join(str(x) for x in c)
... 123 124 125 134 135 145 234 235 245 345 >>> für c in itertools.combinations_with_replacement([1, 2, 3], 2): ... print ''.join(str(x) for x in c) ... 11 12 13 22 23 33 1.33 Sortierung (itertools.permutations) >>> für p in itertools.permutations([1, 2, 3, 4]): ... print ''.join(str(x) for x in p) ... 1234 1243 1324 1342 1423 1432 2134 2143 2314 2341 🎜>
2413
2431
3124
3142
3214
3241
3412
3421
4123
4132
4213
4231
4312
4321
1.34 Link-Iteration (itertools.chain)
>>> a = [1, 2, 3, 4]
>>> für p in itertools.chain(itertools.combinations(a, 2), itertools.combinations(a, 3)):
... print p
...
( 1, 2)
(1, 3)
(1, 4)
(2, 3)
(2, 4)
(3, 4)
(1, 2, 3)
(1, 2, 4)
(1, 3, 4)
(2, 3, 4)
>>> Teilmenge in itertools.chain.from_iterable(itertools.combinations(a, n) für n in range(len(a) + 1))
... Teilmenge drucken
...
()
(1,)
(2, )
(3,)
(4,)
(1, 2)
(1, 3)
( 1, 4)
(2, 3)
(2, 4)
(3, 4)
(1, 2, 3)
(1, 2, 4)
(1, 3, 4)
(2, 3, 4)
(1, 2, 3, 4)
1.35 Zeilen nach gegebenem Wert gruppieren (itertools.groupby)
>>> vom Operator import itemgetter
>>>
>>> mit open('contactlenses.csv', 'r') als Infile:
... data = [line.strip().split(',') for line in infile]
...
>>> data = data[1:]
>>> def print_data(rows):
... print 'n'.join('t'.join('{: <16}'.format(s) for s in row) für Zeile in Zeilen )
...
>>> print_data (data)
junges myope nein reduziert keine
junges Myope Nein normal weich
junges Myope Ja reduziert keine
junges Myope Ja normal Hard
jung hypermetropisch nein reduziert keine
jung hypermetropisch nein normal weich
jung hypermetrop ja reduziert keine
jung hypermetrop ja normal hart
vor- Presbyopie Myopie nein keine
Presbyopie normal weich keine
präpresbyope Myopie ja normal stark
präpresbyopisch hypermetropisch nein reduziert keine normal weich
präpresbyope hypermetrop reduziert keine.
präpresbyopisch hypermetropisch ja normal keine
Presbyopic Myope nein reduziert keine
Presbyopic Myope Nein normal keine
Presbyopisches Myop reduziert keine
presbyopisch hypermetrop normal weich.
presby opisch hypermetropisch ja reduziert keine
presbyopisch hypermetropisch normal keine
>> ;> data.sort(key=itemgetter(-1))
>>> für Wert, Gruppe in itertools.groupby(data, lambda r: r[-1]):
... print '-----------'
... print 'Group: ' + value
... print_data(group)
...
-----------
Gruppe: schwer
jung kurzsichtig ja normal hart
jung Hypermetropie ja normal schwer
präpresbyope ja normal hart
Presbyopie Myope ja normal hart
----------- reduziert keine hypermetrop ja reduziert keine
Präpresbyopie nein reduziert keine
Präpresbyopie ja reduziert keine keine
präpresbyopisch hypermetrop ja reduziert keine
Prä-Presbyopic Hypermetrope Ja Normale Keine
Presbyopic Myope Nein reduziert keine
Presbyopic Myop >presbyopisch hypermetropisch nein keine
presbyopisch hypermetropisch reduziert keine
Presbyopie Hypermetropie keine
-----------
Gruppe: weich
jung kurzsichtig nein normal weich
jung hypermetrop nein normal weich
präpresbyopisch hypermetropisch nein normal weich
presbyopisch hypermetrop nein normal weich
Das obige ist der detaillierte Inhalt von30 unverzichtbare Funktionen und Fähigkeiten der Python-Sprache (3). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!