Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #4231 > unrolled thread
| Started by | Dominique <dominique.sextant@orange.fr.invalid> |
|---|---|
| First post | 2024-12-02 11:46 +0100 |
| Last post | 2024-12-03 09:44 +0100 |
| Articles | 12 — 4 participants |
Back to article view | Back to fr.comp.lang.python
Panne de mémoire avec list et str Dominique <dominique.sextant@orange.fr.invalid> - 2024-12-02 11:46 +0100
Re: Panne de mémoire avec list et str Python <jpierre.messager@gmail.com> - 2024-12-02 11:16 +0000
Re: Panne de mémoire avec list et str Dominique <dominique.sextant@orange.fr.invalid> - 2024-12-02 16:32 +0100
Re: Panne de mémoire avec list et str Python <jpierre.messager@gmail.com> - 2024-12-02 21:28 +0000
Re: Panne de mémoire avec list et str Dominique <dominique.sextant@orange.fr.invalid> - 2024-12-03 06:54 +0100
Re: Panne de mémoire avec list et str Python <jpierre.messager@gmail.com> - 2024-12-02 22:17 +0000
Re: Panne de mémoire avec list et str Dominique <dominique.sextant@orange.fr.invalid> - 2024-12-03 06:55 +0100
Re: Panne de mémoire avec list et str Olivier Miakinen <om+news@miakinen.net> - 2024-12-02 21:08 +0100
Re: Panne de mémoire avec list et str Python <jpierre.messager@gmail.com> - 2024-12-02 21:35 +0000
Re: Panne de mémoire avec list et str Python <jpierre.messager@gmail.com> - 2024-12-02 22:54 +0000
Re: Panne de mémoire avec list et str Thierry P <olmia2b@gmail.com> - 2024-12-03 08:39 +0100
Re: Panne de mémoire avec list et str Dominique <dominique.sextant@orange.fr.invalid> - 2024-12-03 09:44 +0100
| From | Dominique <dominique.sextant@orange.fr.invalid> |
|---|---|
| Date | 2024-12-02 11:46 +0100 |
| Subject | Panne de mémoire avec list et str |
| Message-ID | <vik35m$393an$1@dont-email.me> |
Là, j'ai honte, j'en conviens bien, mais ça fait 1 heure que je cherche sans trouver. Soit une liste qui se présente comme suit : [['2'], ['2'], ['6'], ['8'], ['9']] Comment l'obtenir sous la forme '22689' ? Merci et belle journée à tous, -- Dominique Esto quod es
[toc] | [next] | [standalone]
| From | Python <jpierre.messager@gmail.com> |
|---|---|
| Date | 2024-12-02 11:16 +0000 |
| Message-ID | <pfku1pxUSo1PjY00UnMRmj9UrQo@jntp> |
| In reply to | #4231 |
Le 02/12/2024 à 11:46, Dominique a écrit : > Là, j'ai honte, j'en conviens bien, mais ça fait 1 heure que je cherche > sans trouver. > > Soit une liste qui se présente comme suit : > > [['2'], ['2'], ['6'], ['8'], ['9']] > > Comment l'obtenir sous la forme '22689' ? > > Merci et belle journée à tous, >>> l = [['2'], ['2'], ['6'], ['8'], ['9']] >>> ''.join(x for x, in l) '22689'
[toc] | [prev] | [next] | [standalone]
| From | Dominique <dominique.sextant@orange.fr.invalid> |
|---|---|
| Date | 2024-12-02 16:32 +0100 |
| Message-ID | <vikju4$3de5c$1@dont-email.me> |
| In reply to | #4232 |
Le 02/12/2024 à 12:16, Python a écrit : >>>> l = [['2'], ['2'], ['6'], ['8'], ['9']] >>>> ''.join(x for x, in l) > '22689' > Je te remercie pour cette réponse qui allie simplicité et élégance. Je me pose toute fois une question : pour quoi la virgule après le X du for de res=''.join(x for x, in result) Et si je le supprime, j'ai cette erreur : sequence item 0: expected str instance, list found -- Dominique Esto quod es
[toc] | [prev] | [next] | [standalone]
| From | Python <jpierre.messager@gmail.com> |
|---|---|
| Date | 2024-12-02 21:28 +0000 |
| Message-ID | <WX0SGXiQgNVkhxkqD2oEOKAPBws@jntp> |
| In reply to | #4234 |
Le 02/12/2024 à 16:32, Dominique a écrit : > Le 02/12/2024 à 12:16, Python a écrit : > >>>>> l = [['2'], ['2'], ['6'], ['8'], ['9']] >>>>> ''.join(x for x, in l) >> '22689' >> > > Je te remercie pour cette réponse qui allie simplicité et élégance. Je > me pose toute fois une question : pour quoi la virgule après le X du for de > > res=''.join(x for x, in result) > > Et si je le supprime, j'ai cette erreur : > > sequence item 0: expected str instance, list found C'est dans la logique du déballage de tuple, les expressions de la forme [a,...] = collection (for se contente de répéter cette affectation sur les retour de next(...)). C'est la virgule qui fait un tuple, les parenthèses ne sont qu'une décoration : >>> (1,2,3) (1, 2, 3) >>> 1,2,3 (1, 2, 3) Du coup en RHS il faut une virgule pour créer un tuple à un seul élément : >>> a = (1) >>> type(a) <class 'int'> >>> a 1 >>> a = 1, >>> type(a) <class 'tuple'> >>> a (1,) En LHS c'est pareil : >>> a [1] >>> a,b = [1, 2] >>> a 1 >>> b 2 >>> a, = [1] >>> a 1 Pour déballer une collection de deux éléments dans a et b on écrit a,b = ..., pour déballer l'unique élément d'une collection on écrit a, = ... Makes perfect sense :-)
[toc] | [prev] | [next] | [standalone]
| From | Dominique <dominique.sextant@orange.fr.invalid> |
|---|---|
| Date | 2024-12-03 06:54 +0100 |
| Message-ID | <vim6ed$3sqf7$1@dont-email.me> |
| In reply to | #4238 |
Le 02/12/2024 à 22:28, Python a écrit : > Le 02/12/2024 à 16:32, Dominique a écrit : >> Le 02/12/2024 à 12:16, Python a écrit : >> >>>>>> l = [['2'], ['2'], ['6'], ['8'], ['9']] >>>>>> ''.join(x for x, in l) >>> '22689' >>> >> >> Je te remercie pour cette réponse qui allie simplicité et élégance. Je >> me pose toute fois une question : pour quoi la virgule après le X du >> for de >> >> res=''.join(x for x, in result) >> >> Et si je le supprime, j'ai cette erreur : >> >> sequence item 0: expected str instance, list found > > C'est dans la logique du déballage de tuple, les expressions > de la forme [a,...] = collection (for se contente de répéter cette > affectation sur les retour de next(...)). > > C'est la virgule qui fait un tuple, les parenthèses ne sont qu'une > décoration : > Je te remercie, je ne connaissais pas cette subtilité « décorative » des parenthèses :). -- Dominique Esto quod es
[toc] | [prev] | [next] | [standalone]
| From | Python <jpierre.messager@gmail.com> |
|---|---|
| Date | 2024-12-02 22:17 +0000 |
| Message-ID | <bhequeEQ359dhpvLYkBXKzpG_cQ@jntp> |
| In reply to | #4234 |
Le 02/12/2024 à 16:32, Dominique a écrit : > Le 02/12/2024 à 12:16, Python a écrit : > >>>>> l = [['2'], ['2'], ['6'], ['8'], ['9']] >>>>> ''.join(x for x, in l) >> '22689' >> > > Je te remercie pour cette réponse qui allie simplicité et élégance. Je > me pose toute fois une question : pour quoi la virgule après le X du for de > > res=''.join(x for x, in result) > > Et si je le supprime, j'ai cette erreur : > > sequence item 0: expected str instance, list found _>>> a = ['4'] _>>> type(a) _<class 'list'> _>>> a, = ['4'] _>>> type(a) <class 'str'>
[toc] | [prev] | [next] | [standalone]
| From | Dominique <dominique.sextant@orange.fr.invalid> |
|---|---|
| Date | 2024-12-03 06:55 +0100 |
| Message-ID | <vim6gl$3sqf7$2@dont-email.me> |
| In reply to | #4242 |
Le 02/12/2024 à 23:17, Python a écrit : > Le 02/12/2024 à 16:32, Dominique a écrit : >> Le 02/12/2024 à 12:16, Python a écrit : >> >>>>>> l = [['2'], ['2'], ['6'], ['8'], ['9']] >>>>>> ''.join(x for x, in l) >>> '22689' >>> >> >> Je te remercie pour cette réponse qui allie simplicité et élégance. Je >> me pose toute fois une question : pour quoi la virgule après le X du >> for de >> >> res=''.join(x for x, in result) >> >> Et si je le supprime, j'ai cette erreur : >> >> sequence item 0: expected str instance, list found > > _>>> a = ['4'] > _>>> type(a) > _<class 'list'> > _>>> a, = ['4'] > _>>> type(a) > <class 'str'> > > > C'est très clair... et une découverte pour moi :) Merci, -- Dominique Esto quod es
[toc] | [prev] | [next] | [standalone]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2024-12-02 21:08 +0100 |
| Message-ID | <vil43k$ir5$1@cabale.usenet-fr.net> |
| In reply to | #4232 |
Le 02/12/2024 12:16, Python a écrit : > >>>> l = [['2'], ['2'], ['6'], ['8'], ['9']] >>>> ''.join(x for x, in l) > '22689' Impressionnant. Je n'aurais jamais pensé à la syntaxe « x, » pour extraire le premier (et seul) élément de chaque sous-tableau. -- Olivier Miakinen
[toc] | [prev] | [next] | [standalone]
| From | Python <jpierre.messager@gmail.com> |
|---|---|
| Date | 2024-12-02 21:35 +0000 |
| Message-ID | <wUEi4TW0rVQk4Rsqr19e-18iSrc@jntp> |
| In reply to | #4236 |
Le 02/12/2024 à 21:08, Olivier Miakinen a écrit : > Le 02/12/2024 12:16, Python a écrit : >> >>>>> l = [['2'], ['2'], ['6'], ['8'], ['9']] >>>>> ''.join(x for x, in l) >> '22689' > > Impressionnant. Je n'aurais jamais pensé à la syntaxe « x, » pour extraire > le premier (et seul) élément de chaque sous-tableau. et s'il est pas seul ça peut marcher aussi : > > > l = [['2', '3'], ['2', 'spam'], ['6', 'ham', 'egg', 12 ], ['8'], ['9']] > > > ''.join(x for x,*_ in l) '22689'
[toc] | [prev] | [next] | [standalone]
| From | Python <jpierre.messager@gmail.com> |
|---|---|
| Date | 2024-12-02 22:54 +0000 |
| Message-ID | <G7joTvc3822afNVjEN1jP2qKduE@jntp> |
| In reply to | #4236 |
Le 02/12/2024 à 21:08, Olivier Miakinen a écrit : > Le 02/12/2024 12:16, Python a écrit : >> >>>>> l = [['2'], ['2'], ['6'], ['8'], ['9']] >>>>> ''.join(x for x, in l) >> '22689' > > Impressionnant. Je n'aurais jamais pensé à la syntaxe « x, » pour extraire > le premier (et seul) élément de chaque sous-tableau. J'ai un réflexe : "si tu te vois écrire v[0]" (ou "v[1]", même "v" etc.) c'est pas "Pythonesque", il y a une façon plus claire, confusion-free sur les indices et "pythonienne" de l'écrire. qq. exemples là : https://codeberg.org/jpm/meta
[toc] | [prev] | [next] | [standalone]
| From | Thierry P <olmia2b@gmail.com> |
|---|---|
| Date | 2024-12-03 08:39 +0100 |
| Message-ID | <vimcje$3u4qj$1@dont-email.me> |
| In reply to | #4231 |
Le 02/12/2024 à 11:46, Dominique a écrit : > Là, j'ai honte, j'en conviens bien, mais ça fait 1 heure que je cherche > sans trouver. > > Soit une liste qui se présente comme suit : > > [['2'], ['2'], ['6'], ['8'], ['9']] > > Comment l'obtenir sous la forme '22689' ? > > Merci et belle journée à tous, bjr, pourquoi des crochets dans des crochets ? donc des listes dans la liste
[toc] | [prev] | [next] | [standalone]
| From | Dominique <dominique.sextant@orange.fr.invalid> |
|---|---|
| Date | 2024-12-03 09:44 +0100 |
| Message-ID | <vimgd8$3us0t$1@dont-email.me> |
| In reply to | #4248 |
Le 03/12/2024 à 08:39, Thierry P a écrit : > pourquoi des crochets dans des crochets ? donc des listes dans la liste C'est une très bonne question que je ne suis pas parvenu à contourner. Sans doute parce que je retire d'une liste les éléments un par un et que je les affecte à une autre liste. -- Dominique Esto quod es
[toc] | [prev] | [standalone]
Back to top | Article view | fr.comp.lang.python
csiph-web