Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #4231 > unrolled thread

Panne de mémoire avec list et str

Started byDominique <dominique.sextant@orange.fr.invalid>
First post2024-12-02 11:46 +0100
Last post2024-12-03 09:44 +0100
Articles 12 — 4 participants

Back to article view | Back to fr.comp.lang.python


Contents

  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

#4231 — Panne de mémoire avec list et str

FromDominique <dominique.sextant@orange.fr.invalid>
Date2024-12-02 11:46 +0100
SubjectPanne 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]


#4232

FromPython <jpierre.messager@gmail.com>
Date2024-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]


#4234

FromDominique <dominique.sextant@orange.fr.invalid>
Date2024-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]


#4238

FromPython <jpierre.messager@gmail.com>
Date2024-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]


#4244

FromDominique <dominique.sextant@orange.fr.invalid>
Date2024-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]


#4242

FromPython <jpierre.messager@gmail.com>
Date2024-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]


#4245

FromDominique <dominique.sextant@orange.fr.invalid>
Date2024-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]


#4236

FromOlivier Miakinen <om+news@miakinen.net>
Date2024-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]


#4239

FromPython <jpierre.messager@gmail.com>
Date2024-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]


#4243

FromPython <jpierre.messager@gmail.com>
Date2024-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]


#4248

FromThierry P <olmia2b@gmail.com>
Date2024-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]


#4249

FromDominique <dominique.sextant@orange.fr.invalid>
Date2024-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