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.