Deutsch English Français Italiano |
<62742832$0$22051$426a74cc@news.free.fr> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!2.eu.feeder.erje.net!feeder.erje.net!fdn.fr!usenet-fr.net!agneau.org!nntpfeed.proxad.net!proxad.net!feeder1-1.proxad.net!212.27.60.64.MISMATCH!cleanfeed3-b.proxad.net!nnrp3-2.free.fr!not-for-mail From: yves <yves@free.invalid> Subject: Mon code est lourd Newsgroups: fr.comp.lang.python User-Agent: Pan/0.144 (Time is the enemy; 28ab3ba git.gnome.org/pan2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: 05 May 2022 19:40:34 GMT Lines: 65 Message-ID: <62742832$0$22051$426a74cc@news.free.fr> Organization: Guest of ProXad - France NNTP-Posting-Date: 05 May 2022 21:40:34 CEST NNTP-Posting-Host: 89.226.117.233 X-Trace: 1651779634 news-1.free.fr 22051 89.226.117.233:58822 X-Complaints-To: abuse@proxad.net Bytes: 2060 Bonjour, soit une séquence, un générateur (de tuples en l'occurrence) ('02', 'D', '27') ('02', 'L', '28') ('03', 'M', '01') ('03', 'M', '02') Pour la petite histoire, 02 et 03 correspondent à Février et Mars D 27; c'est dimanche 27, etc... Je voudrais arriver à imprimer: 02 D 27 L 28 03 M 01 M 02 En repassant par un dictionnaire, j'ai ça: #+begin_src python :results output :exports both from pprint import pprint def g(): yield('02', 'D', '27') yield('02', 'L', '28') yield('03', 'M', '01') yield('03', 'M', '02') dic = {} l02,l03 = [],[] for elt in g(): m , d, nd = elt if m == "02": l02.append((d,nd)) dic['02'] = l02 elif m == "03": l03.append((d,nd)) dic['03'] = l03 pprint(dic) #+end_src #+RESULTS: : {'02': [('D', '27'), ('L', '28')], '03': [('M', '01'), ('M', '02')]} Et à partir du dictionnaire, l'impression finale est facile. Mais cette méthode de conversion du générateur en dictionnaire me paraît terriblement lourde, surtout qu'il y aura douze mois, c'est à dire douze branchement if/elif Vous auriez des suggestions d'écriture plus élégante ? @+ -- Yves