07:47 <debnet> Je regrette tellement que reduce ne soit plus un buildin pour de vrai.
08:06 <mdk> alors que map est toujours un builtin...
08:12 <debnet> mdk: Je trouve map moins utile que reduce, mais j'aime bien qu'il soit dans les builtins.
08:12 <debnet> En vrai j'adore utiliser map et reduce.
08:12 <debnet> Mais c'est mon côté fonctionnel.
08:12 <mdk> je crois que l'idée de virer map et reduce des builtins date de l'apparition de la notation en intension
08:13 <mdk> donc retirer map aurait du sens, mais pas reduce
08:13 <mdk> et reduce a été retiré mais pas map
08:13 <mdk> je
08:13 <mdk> je dois rater qqch
08:14 <debnet> Pareil.
08:14 <debnet> vstinner aide nous à comprendre.
08:14 <debnet> Bring back reduce!
08:14 <debnet> mdk: D'ailleurs filter est encore aussi dans les builtins je crois.
08:14 <debnet> Ce qui ne fait aucun moins sens.
08:15 <debnet> encore*
08:15 <mdk> 🙁
08:15 <debnet> En vrai ça coûte pas cher d'importer reduce, mais c'est une étape dont on pourrait se dispenser...
08:16 <debnet> Surtout qu'il n'y a pas vraiment d'alternative viable à reduce.
08:16 <mdk> on va faire une PR qui vire map et filter et qui remet reduce, ça devrait « pas » « gêner » « beaucoup » de monde, si ?
08:16 <debnet> Non mais moi je veux garder map hein !
08:16 <debnet> Je m'en sers trop souvent pour le supprimer des builtins. :D
08:16 <mdk> t'as qu'a utiliser une notation en intension a la place 😀
08:17 <debnet> mdk: Je trouve ça tellement plus élégant de faire map(int, ma_list) que (int(i) for i in ma_list) personnellement.
08:18 <debnet> Mais encore une fois, je suis matrixé par mes années passées dans les langages fonctionnels.
08:19 <mdk> non c'est legit map(int, ma_list)
08:19 <mdk> map(None, ma_list) bof
08:20 <mdk> filter(lambda x: x > 10, map(int, ma_list)) pas legit du tout 😀
08:21 <debnet> mdk: Je pars du principe qu'utiliser une lambda en sort de sort(key=) est déjà une mauvaise idée en soi. :D
08:21 <debnet> en dehors*
08:22 <mdk> assez d'accord (ou max(key= ou min(key=, enfin toutes les key= quoi)
08:22 <debnet> Ouais voilà.
08:24 <debnet> mdk: Et encore, j'utilise souvent itemgetter à la place d'une lambda. :P
09:01 <discord_afpy> <melcore> Et dans ce cas, c’est quoi votre bonne solution pour faire un tri sur les deuxièmes éléments des listes dans une liste ?
09:02 <discord_afpy> <melcore> à part ´sort(ma_list_de_list, key= lambda x: x[1])´, je vois pas
09:05 <entwanne> <debnet> Surtout qu'il n'y a pas vraiment d'alternative viable à reduce.
09:05 <entwanne> Utiliser sum avec un type custom qui implémente l'opération voulue en tant que __add__ :D
10:23 <debnet> Au secours.
10:24 <debnet> melcore: sort(ma_list_de_list, key=itemgetter(1)) ?
11:04 <Mindiell> je connaissais pas itemgetter, comme quoi :)
11:06 <entwanne> la doc des modules itertools, functools et operator est sympa pour apprendre des trucs
12:29 <vstinner> debnet: "Bring back reduce!" euh, c'est dans functools : functools.reduce()
12:29 <debnet> Je sais.
12:30 <debnet> J'aimerais qu'il revienne dans les builtins.
12:30 <debnet> Suis un peu Victor ! 😋
12:30 <vstinner> debnet: https://bugs.python.org/issue1513870 changement de 2006
12:30 <vstinner> au début, le plan était juste de supprimer reduce() : https://bugs.python.org/issue1513249
12:30 <debnet> Qu'est ce qui a motivé ce changement à la base en vrai ?
12:31 <debnet> Alors qu'on a encore map et filter.
12:32 <debnet> Pourquoi le supprimer vu qu'il n'y a pas d'alternative ?
12:33 <debnet> Typiquement appliquer un opérateur entre tous les membres d'une liste c'est chiant à faire sans reduce.
12:33 <vstinner> debnet: motivation ? faut chercher dans les archives, genre https://mail.python.org/archives/list/python-dev@python.org/thread/YOQVYZLZYHRJCWAELI532NHTYLRMKBQY/
12:33 <vstinner> j'sais pas si la réponse y est
12:35 <debnet> Bref c'est l'un des choix regrettables que je déplore dans Python.
12:35 <debnet> Surtout que je ne suis pas un si grand fan des machins en intention.
12:36 <debnet> J'aime bien l'approche fonctionnelle à base de map, reduce, next, iter, etc...
12:38 <vstinner> debnet: tu peux faire : builtins.reduce = functools.reduce
12:38 <vstinner> debnet: et hop, retour à Python 2 :)
12:38 <vstinner> debnet: reduce(...)
12:40 <debnet> Non mais j'adore Python 3 hein. C'est juste qu'il n'y a pas vraiment d'équivalent de reduce avec les trucs en intention et je trouve ça bizarre de l'avoir presque supprimé sans alternative et encore moins avoir laissé map et filter qui eux sont dispensables.
15:55 <alain_afpy> Des bases de données en Python avec sqlite3 - https://zestedesavoir.com/tutoriels/1294/des-bases-de-donnees-en-python-avec-sqlite3/