Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die Operationsmethoden map() und zip() in Python

Einführung in die Operationsmethoden map() und zip() in Python

高洛峰
高洛峰Original
2017-03-07 16:11:031690Durchsuche

Für Map () lautet der Prototyp: Map (Funktion, Sequenz), die Funktionsoperationen für jedes Element in der Sequenz ausführen soll.

Zum Beispiel bedeutet das vorherige a, b, c = map(int, raw_input().split()), die Eingabe a, b, c in ganze Zahlen umzuwandeln. Ein weiteres Beispiel:

a = ['1','2','3','4']
print map(list,a)
print map(int,a)

Die erste Karte wandelt jedes Element in Liste a in eine Liste um, und die zweite Karte wandelt jedes Element in a um. Elemente werden in konvertiert ganze Zahlen.
Für zip() ist der Prototyp zip(*list), list ist eine Liste und zip(*list) gibt ein Tupel zurück, wie zum Beispiel:

list = [[1,2,3],[4,5,6],[7,8,9]]
t = zip(*list)
print t

Ausgabe: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

x = [1,2,3,4,5]
y = [6,7,8,9,10]
a = zip(x,y)
print a

Ausgabe: [(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]

Hier sind einige Ergänzungen :

[python] 
>>> list = [[0,1,2],[3,1,4]] 
>>> [sum(x) for x in list] 
[3, 8] 
>>> map(sum,list) 
[3, 8]

Wenn Sie die Summe jeder Spalte erhalten möchten, müssen Sie zuerst zip(*list) verwenden, um die Liste zu entpacken um eine Tupelliste zu erhalten, in der das i-te Tupel das i-te Element jeder Zeile enthält:

[python] 
>>> list = [[0,1,2],[3,1,4]] 
>>> zip(*list) 
[(0, 3), (1, 1), (2, 4)] 
>>> [sum(x) for x in zip(*list)] 
[3, 2, 6] 
>>> map(sum,zip(*list)) 
[3, 2, 6]

Das folgende Beispiel handelt von zip und unzip (eigentlich zip Wie funktioniert es bei Verwendung mit *:

[python] 
>>> x=[1,2,3] 
>>> y=[4,5,6] 
>>> zipped = zip(x,y) 
>>> zipped 
[(1, 4), (2, 5), (3, 6)] 
>>> x2,y2=zip(*zipped) 
>>> x2 
(1, 2, 3) 
>>> y2 
(4, 5, 6) 
>>> x3,y3=map(list,zip(*zipped)) 
>>> x3 
[1, 2, 3] 
>>> y3 
[4, 5, 6]


Mehr map() und zip( ) in Python Bitte beachten Sie die chinesische PHP-Website für verwandte Artikel zu Betriebsmethoden!


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