Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #3612
| 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: Liste de listes Python |
| Date | Fri, 22 Oct 2021 18:03:09 +0200 |
| Organization | Université de Strasbourg |
| Message-ID | <877de559oi.fsf@universite-de-strasbourg.fr.invalid> (permalink) |
| 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= |
| Xref | csiph.com fr.comp.lang.python:3612 |
Show key headers only | View raw
Olivier92410 <nospam_olivier.debeyssac@gmail.com.invalid> writes:
> Bonjour à Tous,
> Question sur le fonctionnement de liste de listes en Python. Voici le code
> suivant:
> ini_list = [[1, 2, 5, 10, 7],
> [4, 3, 4, 3, 21],
> [45, 65, 8, 8, 9, 9]]
>
> element = 1
>
> l = [[]]
> est_dans_liste = (element in sublist for sublist in l)
Cette instruction crée un générateur, ce que tu peux voir avec
"type(est_dans_liste)" par exemple.
Un générateur est un objet qui... génère des objets à condition qu'on
itère 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à tu convertis ton objet-générateur en booléen, et tous les générateurs
se convertissent en True (même ceux qui ne produiront aucun objet).
C'est normal : la conversion n'est pas supposée modifier l'objet, et
parcourir un générateur le modifie définitivement.
> Dans cet exemple, je cherche à savoir si la valeur numérique "1" est présente
> dans la liste de listes l (liste vide en l'occurence ici)
Ton générateur te permet d'avoir la réponse pour chaque sous-liste. Dans
ton exemple, il va produire un booléen False. Avec la liste non-vide
donnée plus haut, ton générateur va produire trois booléens,
successivement True False False.
> Le résultat de ce code est "e;ok"e;.
Je ne sais pas d'où viennent tes "e;", ce serait bien que tu nous les
épargnes.
> Ce qui est bien évidemment 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énérateur, tu peux l'utiliser comme une liste
(sauf qu'il est cramé après le parcours). Il te manque donc un niveau de
parcours : tu as les réponses pour chaque sous-liste, tu cherches dans
la liste de ces réponses. Tu peux faire
True in (element in sublist for sublist in l)
ou
any (element in sublist for sublist in l)
-- Alain.
Back to fr.comp.lang.python | Previous | Next — Previous in thread | Find similar
Liste de listes Python Olivier92410 <nospam_olivier.debeyssac@gmail.com.invalid> - 2021-10-22 10:12 -0500 Re: Liste de listes Python Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2021-10-22 18:03 +0200
csiph-web