Re: Un code que j'ai mis du temps à comprendre

Liste des GroupesRevenir à fcl python 
Sujet : Re: Un code que j'ai mis du temps à comprendre
De : nicolasp (at) *nospam* aaton.com (Nicolas)
Groupes : fr.comp.lang.python
Date : 08. Dec 2021, 09:42:04
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <61b061ca$0$5000$426a74cc@news.free.fr>
References : 1
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2
Le 07/12/2021 à 10:49, ast a écrit :
Trouvez ce que fait le code suivant ?
(sans l'éxécuter bien sur)
   >>> n = 3
 >>> x = range(n ** 2),
 >>> xn = list(zip(*[iter(x)] * n))
 >>> xn
  Réponse:
 Tout d'abord dans le *[iter(x)] * n c'est la
2ème étoile (multiplication) qui est prioritaire
sur la 1ère (splash), ça n'a rien d'évident
 On se retrouve donc avec:
 [iter(x), iter(x), iter(x)]
 mais c'est le même objet itérateur qui est répété
3 fois, équivalent à it = iter(x) puis [it, it, it]
 après list(zip(it, it, it))
  -> [(0, 1, 2), (3, 4, 5), (6, 7, 8)]
 la fonction réalisée est donc un "tronçonnage" de x
C'est "malin" mais c'est très très moche.
Les codes incompréhensibles comme ça, c'est bien pour le fun mais en production...

Date Sujet#  Auteur
7 Dec 21 * Un code que j'ai mis du temps à comprendre5ast
8 Dec 21 +* Re: Un code que j'ai mis du temps à comprendre3Nicolas
8 Dec 21 i`* Re: Un code que j'ai mis du temps à comprendre2ast
8 Dec 21 i `- Re: Un code que j'ai mis du temps à comprendre1Nicolas
9 Dec 21 `- Re: Un code que j'ai mis du temps à comprendre1ast

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal