Heim  >  Artikel  >  Backend-Entwicklung  >  30 unverzichtbare Funktionen und Fähigkeiten der Python-Sprache (1)

30 unverzichtbare Funktionen und Fähigkeiten der Python-Sprache (1)

高洛峰
高洛峰Original
2017-03-17 16:48:221196Durchsuche

Seit 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 noch nicht kennen, obwohl Sie einige 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. Sollten Sie also nach der Lektüre des Beispiels immer noch unklar sein, kann Ihnen 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.1 Aufteilung

>>> a, b, c = 1, 2, 3

>>> >

(1, 2, 3)

>>> a, b, c = [1, 2, 3]

>>> b, c

(1, 2, 3)

>>> a, b, c = (2 * i + 1 für i im Bereich(3))

>>> a, b, c

(1, 3, 5)

>>> [1, (2, 3), 4]

>>> a

1

>>> 2

>>> c

3

>>> d

4

1.2 Austauschvariable Aufteilung

>>> a, b = 1, 2

>>> a, b = b, a

>> ;> ; a, b

(2, 1)

1.3 Erweiterung und Aufteilung (anwendbar unter Python 3)

>>> [1, 2, 3, 4, 5]

>>> a

1

>>> [2, 3, 4]

>>> c

5

1.4 Negativer Index

>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> a[-1]

10

>>> a[-3]

8

1.5 Listenaufteilung (a[Start:

Ende

])

>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> 🎜>[2, 3, 4, 5, 6, 7]

1.6 Listenaufteilung mit negativen Indizes

>>> , 3, 4, 5, 6, 7, 8, 9, 10]

>>> a[-4:-2]

[7, 8 ]

1.7 Listensegment mit Schrittwert (a[start:end:step])

>>> , 8, 9, 10]

>>> a[::2]

[0, 2, 4, 6, 8, 10]

>>> a[::3]

[0, 3, 6, 9]

>>> a[2:8: 2]

[2, 4, 6]

1.8 Negative Schrittwertlistenaufteilung

>>> a = [0, 1, 2, 3, 4, 5, 6 , 7, 8, 9, 10]

>>> a[::-1]

[10, 9, 8, 7, 6 , 5, 4, 3 , 2, 1, 0]

>>> a[::-2]

[10, 8, 6, 4, 2, 0 ]

1.9 Listen-Slice-Zuweisung

>>> a = [1, 2, 3, 4, 5]

>>> 0, 0]

>>> 1:1] = [8, 9]

>>> a

[1, 8, 9, 2, 0, 0, 4, 5]

>>> a[1:-1] = []

>>> a

[1, 5]

1.10 Benannt Slice (Slice(Start, Ende, Schritt))

>>> a = [0, 1, 2, 3, 4, 5]

>>> LASTTHREE = Slice(-3, None)

>>> LASTTHREE

slice(-3, None, None)

> ;>> [LASTTHREE]

[3, 4, 5]

1.11

zip

Verpackungs- und Auspackliste und Multiples

> >> [1, 2, 3]

>>> b = ['a', 'b', 'c']

>> a, b)

>>> z [(1, 'a'), (2, 'b'), (3, ' c')]

>>> zip(*z)

[(1, 2, 3), ('a', 'b', 'c')]

1.12   使用zip合并相邻的列表项

>>> a = [1, 2, 3, 4, 5, 6]  

>>> zip(*([iter(a)] * 2))  

[(1, 2), (3, 4), (5, 6)]  

 

>>> group_adjacent = lambda a, k: zip(*([iter(a)] * k))  

>>> group_adjacent(a, 3)  

[(1, 2, 3), (4, 5, 6)]  

>>> group_adjacent(a, 2)  

[(1, 2), (3, 4), (5, 6)]  

>>> group_adjacent(a, 1)  

[(1,), (2,), (3,), (4,), (5,), (6,)]  

 

>>> zip(a[::2], a[1::2])  

[(1, 2), (3, 4), (5, 6)]  

 

>>> zip(a[::3], a[1::3], a[2::3])  

[(1, 2, 3), (4, 5, 6)]  

 

>>> group_adjacent = lambda a, k: zip(*(a[i::k] for i in range(k)))  

>>> group_adjacent(a, 3)  

[(1, 2, 3), (4, 5, 6)]  

>>> group_adjacent(a, 2)  

[(1, 2), (3, 4), (5, 6)]  

>>> group_adjacent(a, 1)  

[(1,), (2,), (3,), (4,), (5,), (6,)] 

1.13使用zip和iterators生成滑动窗口 (n -grams) 

>>> from itertools import islice  

>>> def n_grams(a, n):  

...     z = (islice(a, i, None) for i in range(n))  

...     return zip(*z)  

...  

>>> a = [1, 2, 3, 4, 5, 6]  

>>> n_grams(a, 3)  

[(1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6)]  

>>> n_grams(a, 2)  

[(1, 2), (2, 3), (3, 4), (4, 5), (5, 6)]  

> ;>> n_grams(a, 4)  

[(1, 2, 3, 4), (2, 3, 4, 5), (3, 4, 5, 6)] 

1.14使用zip反转字典

>>> m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}  

>>> m.items()  

[('a', 1), ('c', 3), ('b', 2), ('d', 4)]  

>>> zip(m.values(), m.keys())  

[(1, 'a'), (3, 'c'), (2, 'b'), (4, 'd ')]  

>>> mi = dict(zip(m.values(), m.keys()))  

>>> mi  

{1: 'a', 2: 'b', 3: 'c', 4: 'd'} 


Das obige ist der detaillierte Inhalt von30 unverzichtbare Funktionen und Fähigkeiten der Python-Sprache (1). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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