Mon code est lourd
Sujet : Mon code est lourd
De : yves (at) *nospam* free.invalid (yves)
Groupes : fr.comp.lang.pythonDate : 05. May 2022, 21:40:34
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <62742832$0$22051$426a74cc@news.free.fr>
User-Agent : Pan/0.144 (Time is the enemy; 28ab3ba git.gnome.org/pan2)
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
Haut de la page
Les messages affichés proviennent d'usenet.
NewsPortal