Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #3545
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Newsgroups | fr.comp.lang.python |
| Subject | Re: Extraire d'un dictionnaire un sous-dictionnaire |
| Date | 2021-05-26 17:57 +0200 |
| Organization | There's no cabale |
| Message-ID | <s8lr5t$mpq$1@cabale.usenet-fr.net> (permalink) |
| References | <s8h8e5$1ieq$1@cabale.usenet-fr.net> <87fsyb9fqd.fsf@universite-de-strasbourg.fr.invalid> <s8j537$2gi3$1@cabale.usenet-fr.net> <60ae3d3d$0$6455$426a34cc@news.free.fr> |
Le 26/05/2021 14:21, Nicolas a écrit :
>
> Il y a deux versions possibles.
>
> Celle de Julien qui itère sur le dictionnaire d'origine :
> {key: value for key, value in mondict.items() if key in keys}
>
> et une autre qui itère sur les clés :
> {key: mondict[key] for key in keys if key in mondict}
Les deux sont intéressantes, parce que cela a une incidence sur l'ordre
des clés dans le résultat.
mondict = { "t" : "TRUC", "m" : "MACHIN", "b" : "BIDULE", "c" : "CHOSE" }
keys = ["b", "c", "t", "z"]
{key: value for key, value in mondict.items() if key in keys}
=> {'t': 'TRUC', 'b': 'BIDULE', 'c': 'CHOSE'}
{key: mondict[key] for key in keys if key in mondict}
=> {'b': 'BIDULE', 'c': 'CHOSE', 't': 'TRUC'}
On a bien sûr la même chose si keys est un tuple au lieu d'une liste, mais
l'ordre n'est pas prédictible si c'est un set.
> De façon générale, en fonction de la taille du dictionnaire et de la
> taille de la liste de clés, une version peut être plus intéressante que
> l'autre. Toujours dans le but de gagner en performance.
Dans mon cas, le dictionnaire contiendra généralement trois ou quatre
valeurs, et la liste de clés en contient tout juste cinq : "host",
"port", "user", "password" et "usenetrc". Après avoir fait ce filtrage
une seule fois pour passer les paramètres à nntplib.NNTP ou à
nntplib.NNTP_SSL, j'utilise le résultat de la connexion pour lire la
totalité de usenet-fr, ce qui me prend en moyenne 45 secondes.
> Même si ce n'est pas nécessaire ici, tu peux voir les choses autrement :
> Le temps CPU non utilisé, c'est de l'énergie économisée.
Certes. Du coup je pourrais faire une boucle testant un million de fois
chacune des méthodes afin de savoir au finale laquelle est la plus rapide.
Mais avant de rentabiliser l'énergie perdue par mon test il va me falloir
quelques années d'utilisation du programme dûment optimisé. ;-)
--
Olivier Miakinen
Back to fr.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
Extraire d'un dictionnaire un sous-dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2021-05-25 00:13 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Julien Palard <julien@palard.fr> - 2021-05-25 08:07 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2021-05-25 10:07 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2021-05-25 11:56 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Nicolas <nicolasp@aaton.com> - 2021-05-25 12:04 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2021-05-25 17:24 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Nicolas <nicolasp@aaton.com> - 2021-05-25 10:55 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Nicolas <nicolasp@aaton.com> - 2021-05-25 10:58 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2021-05-25 11:50 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Nicolas <nicolasp@aaton.com> - 2021-05-25 11:58 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2021-05-25 17:20 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2021-05-25 14:10 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2021-05-25 17:28 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Nicolas <nicolasp@aaton.com> - 2021-05-26 14:21 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2021-05-26 17:57 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Nicolas <nicolasp@aaton.com> - 2021-05-31 08:48 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2021-05-31 09:14 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Nicolas <nicolasp@aaton.com> - 2021-06-01 09:10 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire rejoc <rejoc@FREEfree.fr> - 2021-05-28 21:45 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire rejoc <rejoc@FREEfree.fr> - 2021-05-28 21:52 +0200
Re: Extraire d'un dictionnaire un sous-dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2021-05-29 11:07 +0200
Re: [DIGRESSION] Extraire d'un dictionnaire un sous-dictionnaire rejoc <rejoc@FREEfree.fr> - 2021-05-31 00:40 +0200
csiph-web