Comments on: map(), filter() et reduce () ? http://sametmax.com/map-filter-et-reduce/ Du code, du cul Sat, 07 Nov 2015 11:08:18 +0000 hourly 1 http://wordpress.org/?v=4.1 By: Sam http://sametmax.com/map-filter-et-reduce/#comment-162392 Sun, 21 Jun 2015 16:56:11 +0000 http://sametmax.com/?p=7791#comment-162392 C’est juste plus court.

]]>
By: gaut http://sametmax.com/map-filter-et-reduce/#comment-162390 Sun, 21 Jun 2015 16:45:38 +0000 http://sametmax.com/?p=7791#comment-162390 Bonjour bonjour,

Je ne comprends pas trop L’usage utile de filter (garder uniquement les elements vrais d’une liste).

Pourquoi ne pas faire :

[a for a in l if a]

]]>
By: Sam http://sametmax.com/map-filter-et-reduce/#comment-150367 Fri, 05 Dec 2014 20:01:53 +0000 http://sametmax.com/?p=7791#comment-150367 Plus un détournement dirons-nous. Et comme “explicit is better than implicit”, autant utiliser l’outil officiel pour ça:

from itertools import izip_longest
zip_longest(range(5), range(10)))
]]>
By: Alcolo47 http://sametmax.com/map-filter-et-reduce/#comment-150290 Fri, 05 Dec 2014 09:37:17 +0000 http://sametmax.com/?p=7791#comment-150290 Une utilisation de map intéressante: le zip-long:
map(None, range(5), range(10))

]]>
By: Drife http://sametmax.com/map-filter-et-reduce/#comment-46561 Mon, 09 Jun 2014 08:35:19 +0000 http://sametmax.com/?p=7791#comment-46561 @Sam: Désolé pour le nom :).

Bon de toute façon cette écriture sera obsolète bientôt, mais en fait je crois que j’ai tord, car d’après la doc (cf kontre):

“much the same way as filter(), the map() function now returns an iterator. (In Python 2, it returned a list.)”

Donc, a priori la liste était générée de toute façon en python 2, tout comme avec une liste compréhension.

J’imaginai que map() se contentait d’itérer sans créer d’objet résultant…

Merci de vos réponses en tout cas ;-)

]]>
By: Sam http://sametmax.com/map-filter-et-reduce/#comment-41646 Wed, 04 Jun 2014 08:12:36 +0000 http://sametmax.com/?p=7791#comment-41646 @Drife: oui. Sauf pour le nom. Moi c’est sam :) Mais comme le dit kontre, ça ne marchera plus en Python 3. Tu peux compenser en appelant all() sur le generateur, mais franchement, autant faire une boucle. L’intention est claire.

]]>
By: kontre http://sametmax.com/map-filter-et-reduce/#comment-41265 Tue, 03 Jun 2014 20:04:56 +0000 http://sametmax.com/?p=7791#comment-41265 Sauf qu’en python3, map retourne un itérateur, donc pour exécuter la fonction tu dois créer la liste de la même manière. cf http://www.diveintopython3.net/porting-code-to-python-3-with-2to3.html#map

Sinon pour ton problème une bête boucle for suffit (même si ça prend une ligne de plus…)

]]>
By: Drife http://sametmax.com/map-filter-et-reduce/#comment-41060 Tue, 03 Jun 2014 09:52:30 +0000 http://sametmax.com/?p=7791#comment-41060 Bonjour,

Je vois un cas d’utilisation de “map” intéressant, mais j’ai peut-être tord.

Dans mon code j’ai parfois besoin de faire des appels multiples à des fonctions, et ceux en me foutant éperdument de la liste résultante, seule l’exécution de la fonction m’intéresse.

Voici alors ce que je peux écrire:
[ fonction_del(id) for id in ids ]

Ou bien:
map(fonction_del, ids)

Dans la mesure ou je ne consulterai jamais le contenu de la liste que je génère dans mon premier code, je pense qu’il est mieux de faire du map et de ne pas créer un objet liste.(C’est un appel API avec levée d’exception si besoin).

Je suis dans le vrai Max ?

PS: bien entendu, j’aurai pu faire un boucle mais ça prend 2 lignes :D

]]>
By: 6no http://sametmax.com/map-filter-et-reduce/#comment-15950 Wed, 20 Nov 2013 09:54:21 +0000 http://sametmax.com/?p=7791#comment-15950 j’ai déjà utilisé map() et filter() c’est vrais que c’est tordu mais je trouve surtout que ce n’est pas très lisible chaque fois que je tombe dessus je me dis “merde comment ça marche encore” (oui je suis pas dev a plein temps et mon niveau et tout petit)

]]>