Maison  >  Article  >  développement back-end  >  Introduction aux méthodes d'opération map() et zip() en python

Introduction aux méthodes d'opération map() et zip() en python

高洛峰
高洛峰original
2017-03-07 16:11:031708parcourir

Pour map(), son prototype est : map(function, séquence), qui consiste à effectuer des opérations de fonction sur chaque élément de la séquence.

Par exemple, le précédent a, b, c = map(int, raw_input().split()) signifie convertir l'entrée a, b, c en entiers. Autre exemple :

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

La première carte convertit chaque élément de la liste a en liste, et la deuxième carte convertit chaque élément d'un Les éléments sont convertis en entiers.
Pour zip(), le prototype est zip(*list), list est une liste et zip(*list) renvoie un tuple, tel que :

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

Sortie : [(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

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

Voici quelques suppléments :

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

Si vous souhaitez obtenir la somme de chaque colonne, vous devez d'abord utiliser zip(*list) pour décompresser la liste pour obtenir une liste de tuples, où le i-ième tuple contient le i-ième élément de chaque ligne :

[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]

L'exemple suivant concerne zip et unzip (en fait zip Comment ça marche lorsqu'il est utilisé avec * :

[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]


Plus de map() et zip( ) en python Veuillez faire attention au site Web PHP chinois pour les articles connexes sur les méthodes de fonctionnement !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn