Deutsch   English   Français   Italiano  
<877de559oi.fsf@universite-de-strasbourg.fr.invalid>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder6.news.weretis.net!4.us.feeder.erje.net!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.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: Liste de listes Python
Date: Fri, 22 Oct 2021 18:03:09 +0200
Organization: =?utf-8?Q?Universit=C3=A9?= de Strasbourg
Message-ID: <877de559oi.fsf@universite-de-strasbourg.fr.invalid>
References: <gwmdnSVZu_5PSe_8nZ2dnUU7983NnZ2d@giganews.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Injection-Info: gioia.aioe.org; logging-data="52339"; 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)
X-Notice: Filtered by postfilter v. 0.9.2
Cancel-Lock: sha1:XDoVkRMMAQ9a8eI1qSVTsYTNwc0=
Bytes: 3381
Lines: 72

Olivier92410 <nospam_olivier.debeyssac@gmail.com.invalid> writes:

> Bonjour =C3=A0 Tous,
> Question sur le fonctionnement de liste de listes en Python. Voici le code
> suivant:
> ini_list =3D [[1, 2, 5, 10, 7],
>             [4, 3, 4, 3, 21],
>             [45, 65, 8, 8, 9, 9]]
>
> element =3D 1
>
> l =3D [[]]
> est_dans_liste =3D (element in sublist for sublist in l)

Cette instruction cr=C3=A9e un g=C3=A9n=C3=A9rateur, ce que tu peux voir av=
ec
"type(est_dans_liste)" par exemple.

Un g=C3=A9n=C3=A9rateur est un objet qui... g=C3=A9n=C3=A8re des objets =C3=
=A0 condition qu'on
it=C3=A8re dessus, par exemple avec

    for b in est_dans_liste:
        print (b)

ou simplement

    print (list(est_dans_liste))

> if est_dans_liste:
>     print("ok")

L=C3=A0 tu convertis ton objet-g=C3=A9n=C3=A9rateur en bool=C3=A9en, et tou=
s les g=C3=A9n=C3=A9rateurs
se convertissent en True (m=C3=AAme ceux qui ne produiront aucun objet).
C'est normal : la conversion n'est pas suppos=C3=A9e modifier l'objet, et
parcourir un g=C3=A9n=C3=A9rateur le modifie d=C3=A9finitivement.

> Dans cet exemple, je cherche =C3=A0 savoir si la valeur num=C3=A9rique "1=
" est pr=C3=A9sente
> dans la liste de listes l (liste vide en l'occurence ici)

Ton g=C3=A9n=C3=A9rateur te permet d'avoir la r=C3=A9ponse pour chaque sous=
-liste. Dans
ton exemple, il va produire un bool=C3=A9en False. Avec la liste non-vide
donn=C3=A9e plus haut, ton g=C3=A9n=C3=A9rateur va produire trois bool=C3=
=A9ens,
successivement True False False.

> Le r=C3=A9sultat de ce code est "e;ok"e;.

Je ne sais pas d'o=C3=B9 viennent tes "e;", ce serait bien que tu nous les
=C3=A9pargnes.

> Ce qui est bien =C3=A9videmment faux. Il y a donc quelque chose que je n'=
ai
> pas saisi dans le fonctionnement des listes. Est ce que l'un d'entre
> vous peut me guider ? Merci beaucoup

Si tu veux utiliser un g=C3=A9n=C3=A9rateur, tu peux l'utiliser comme une l=
iste
(sauf qu'il est cram=C3=A9 apr=C3=A8s le parcours). Il te manque donc un ni=
veau de
parcours : tu as les r=C3=A9ponses pour chaque sous-liste, tu cherches dans
la liste de ces r=C3=A9ponses. Tu peux faire

    True in (element in sublist for sublist in l)

ou

    any (element in sublist for sublist in l)

-- Alain.