Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #3814

Re: Vérifier la présence de plusieurs clés dans un dictionnaire

Path csiph.com!aioe.org!Faqf6A55NG1s8DSVkh3L9A.user.46.165.242.75.POSTED!not-for-mail
From Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid>
Newsgroups fr.comp.lang.python
Subject Re: Vérifier la présence de plusieurs clés dans un dictionnaire
Date Tue, 26 Apr 2022 11:55:18 +0200
Organization Université de Strasbourg
Message-ID <878rrsw4mx.fsf@universite-de-strasbourg.fr.invalid> (permalink)
References <t475fb$17ub$1@cabale.usenet-fr.net> <t4761d$1839$1@cabale.usenet-fr.net>
Mime-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding quoted-printable
Injection-Info gioia.aioe.org; logging-data="3372"; posting-host="Faqf6A55NG1s8DSVkh3L9A.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Cancel-Lock sha1:juZdSj3chg4dt118opXxRybSYRQ=
X-Notice Filtered by postfilter v. 0.9.2
Xref csiph.com fr.comp.lang.python:3814

Show key headers only | View raw


Olivier Miakinen <om+news@miakinen.net> writes:

>> Soit maintenant une liste de plusieurs clés keys=[key1, key2, ... keyn].
>> 
>> Quelle serait la façon la plus économique pour vérifier que toutes les clés
>> listées dans keys sont présentes dans le dictionnaire d ? Je n'ai pas besoin
>> de savoir précisément quelles clés sont présentes, je voudrais juste un test
>> qui me réponde True si tous les élements de keys sont bien des clés dans d,
>> False si au moins un élément de keys n'est pas une clé dans d.
>
> Ceci devrait faire l'affaire :
>   not (keys - d.keys())
>
> Sauf erreur de ma part, ça répondra True si la différence entre mon tableau
> de clés et les vraies clés du dictionnaire est un ensemble vide, False si
> la différence contient au moins une clé (présente donc dans keys et pas dans
> d.keys())

Je m'interroge sur cette façon de faire... keys est une liste, d.keys()
une "vue", je ne vois pas bien de quel opérateur - il s'agit (le
résultat est un set, en tout cas). Bref, cela fait bien ce que tu veux
apparemment.

Si le dictionnaire est volumineux et la liste courte, il vaut peut-être
mieux faire quelque chose comme

all (k in d for k in keys)

cela évitera la création explicite d'un set dans le seul but de tester
s'il est vide, et j'imagine que cela arrête la recherche au premier
False, ce que semble confirmer la doc de all.

(Difficile d'en dire plus parce que toutes ces opérations ont une
complexité --voire un comportement -- mal documentée.)

-- Alain.

Back to fr.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Vérifier la présence de plusieurs clés dans un dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2022-04-25 23:56 +0200
  Re: Vérifier la présence de plusieurs clés dans un dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2022-04-26 00:06 +0200
    Re: Vérifier la présence de plusieurs clés dans un dictionnaire Nicolas <nicolasp@aaton.com> - 2022-04-26 10:03 +0200
    Re: Vérifier la présence de plusieurs clés dans un dictionnaire Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2022-04-26 11:55 +0200
      Re: Vérifier la présence de plusieurs clés dans un dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2022-04-26 19:01 +0200
        Re: Vérifier la présence de plusieurs clés dans un dictionnaire Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2022-04-26 19:37 +0200
          Re: Vérifier la présence de plusieurs clés dans un dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2022-04-26 22:07 +0200
      Re: Vérifier la présence de plusieurs clés dans un dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2022-04-26 22:32 +0200
    Re: Vérifier la présence de plusieurs clés dans un dictionnaire Olivier Miakinen <om+news@miakinen.net> - 2022-04-27 15:10 +0200

csiph-web