| Deutsch English Français Italiano |
|
<874k2fwxsi.fsf@universite-de-strasbourg.fr.invalid> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!aioe.org!9ySnaoA89KpIvxcESJFCUw.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: =?utf-8?Q?V=C3=A9rifier?= la =?utf-8?Q?pr=C3=A9sence?= de plusieurs =?utf-8?Q?cl=C3=A9s?= dans un dictionnaire Date: Tue, 26 Apr 2022 19:37:49 +0200 Organization: =?utf-8?Q?Universit=C3=A9?= de Strasbourg Message-ID: <874k2fwxsi.fsf@universite-de-strasbourg.fr.invalid> References: <t475fb$17ub$1@cabale.usenet-fr.net> <t4761d$1839$1@cabale.usenet-fr.net> <878rrsw4mx.fsf@universite-de-strasbourg.fr.invalid> <t498hb$21nm$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="50422"; posting-host="9ySnaoA89KpIvxcESJFCUw.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:cIgA+d6i7veS0oYGRGMSF8h6RhU= X-Notice: Filtered by postfilter v. 0.9.2 Bytes: 2858 Lines: 47 Olivier Miakinen <om+news@miakinen.net> writes: >>> not (keys - d.keys()) > <https://docs.python.org/fr/3.8/library/stdtypes.html#frozenset.differenc= e> > =C2=A7 > Remarque : Les m=C3=A9thodes union(), intersection(), difference(), et > symmetric_difference(), issubset(), et issuperset() acceptent n'importe > quel it=C3=A9rable comme argument, contrairement aux op=C3=A9rateurs =C3= =A9quivalents > qui n'acceptent que des sets. > =C2=A7 > > En lisant cette remarque, j'ai cru =C3=A0 tort qu'elle disait que =C2=AB = - =C2=BB > acceptait n'importe quel it=C3=A9rable =C3=A0 gauche et =C3=A0 droite, al= ors qu'au > =C3=A7a ne vaut pour =C2=AB difference() =C2=BB, et encore, seulement pou= r son > argument ! > > Bon, il se trouve que =C3=A7a marche (et que =C3=A7a retourne effectiveme= nt un > set) mais je suis bien s=C3=BBr preneur d'une meilleure solution. Oui, mais je pense que =C3=A7a marche gr=C3=A2ce aux "reflected/swapped ope= rands", qui fait si il n'y a pas de __sub__ sur list, la m=C3=A9thode __rsub__ de s= et (ou ce que renvoie keys()) est utilis=C3=A9e... https://docs.python.org/3/reference/datamodel.html#object.__radd__ >> all (k in d for k in keys) > Ni le dictionnaire ni la liste ne sont tr=C3=A8s gros (moins de 20 entr= =C3=A9es > pour le dictionnaire, et entre 3 et 6 pour la liste), mais ta solution > pr=C3=A9sente surtout l'int=C3=A9r=C3=AAt d'=C3=AAtre plus lisible. Cette= commande 'all' > est vraiment ce qu'il me faut ! Dans ce cas, "beauty is in the eye of the beholder", choisis ce que tu comprendras le plus facilement quand tu reliras le code dans 3 semaines/mois/ann=C3=A9es/. -- Alain.