Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraire d'un dictionnaire un sous-dictionnaire

21 réponses
Avatar
Olivier Miakinen
Bonjour,

Je cherche Í  résoudre élégamment un problème. Comme souvent j'ai déjÍ 
une idée de la solution, d'o͹ ma question consistant Í  extraire un
sous-dictionnaire d'un dictionnaire. Mais dans un second temps je vais
exposer le vrai problème au cas o͹ mon idée ne serait pas optimale.

====
Voici donc ma question. Supposons que j'ai un dictionnaire, par exemple
mondict = { "t" : "TRUC", "m" : "MACHIN", "b" : "BIDULE", "c" : "CHOSE" }.

J'ai par ailleurs une liste de clés, keys = ["b", "c", "t", "z"], ou un tuple
keys = ("b", "c", "t", "z"), ou un set keys = {"b", "c", "t", "z"}, selon ce
qui sera le plus simple.

Je voudrais, Í  partir de keys (qu'il soit liste, tuple ou set) et de mon
dictionnaire, obtenir un dictionnaire ne contenant que les entrées présentes
dans keys, dans mon exemple "b", "c" et "t", pas l'entrée "m", sans que cela
ne provoque une erreur Í  cause de "z".

Donc :
resultat = { "t" : "TRUC", "b" : "BIDULE", "c" : "CHOSE" }

====
Et maintenant le vrai problème.

Je voudrais appeler une fonction du type :
def lafonction(b=None, c=None, t=None, z=None):
....
en lui passant les valeurs pour b, c, t et z, si elles existent, se trouvant
dans mon dictionnaire mondict. Du coup un truc du genre :
lafonction(**mondict)
mais sans que cela provoque une erreur Í  cause de l'entrée "m".


Cordialement,
--
Olivier Miakinen

1 réponse

1 2 3
Avatar
Nicolas
Le 31/05/2021 Í  09:14, Olivier Miakinen a écrit :
Le 31/05/2021 08:48, Nicolas a écrit :
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é. ;-)

Mais peut-être qu'un jour ton code se retrouvera dans une librairie
téléchargée des millions de fois et exécutée sur tous les
PC/téléphones/tablettes/systèmes embarqués du monde ;)

Il se trouve que non. Tu ne savais pas Í  quoi mon programme est censé servir,
mais c'est typiquement le genre de programme que je me dois de ne pas partager.
En fait, c'était une boutade ;)
...
1 2 3