Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment puis faire (appel aux codeurs fous)

3 réponses
Avatar
chris
Bonjour,

je recherche a faire un multi pop() sur une liste d'objets

soit une liste a
a.pop() me retourne 1 element j'aimerais depiler n elements
et je trouve pas
ou alors comme ca :

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
a =3D list("abcdefghijklmnopqrstuvwxyz")

b=3D5

while len(a) > b:
c =3D [ a.pop() for x in b * 'x' ]
print c
print a
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
mais je trouve pas ca elegant

le but a l'origine est une serie de donn=E9es
et je voudrais faire des tableaux pour 10 ou 4 ou 6 ensembles de
donn=E9es pour des
questions de presentations

qq a une id=E9e ?

A+
merci

3 réponses

Avatar
Michel Claveau - MVP
Bonsoir !

Et ça :
c=5
a,b=a[:-c],a[-c:]
ça te plairait mieux ?

@+
--
Michel Claveau
Avatar
Pierre Quentel
On 14 déc, 21:01, "Michel Claveau -
MVP" wrote:
Bonsoir !

Et ça :
  c=5
  a,b=a[:-c],a[-c:]
ça te plairait mieux ?

@+
--
Michel Claveau



Bonsoir,

Le hic c'est que pour avoir le même résultat qu'avec des pop(), il
faut en plus ranger a[-c:] dans l'ordre inverse...

- Pierre
Avatar
Pierre Quentel
On 14 déc, 22:44, Pierre Quentel wrote:
On 14 déc, 21:01, "Michel Claveau -

MVP" wrote:
> Bonsoir !

> Et ça :
>   c=5
>   a,b=a[:-c],a[-c:]
> ça te plairait mieux ?

> @+
> --
> Michel Claveau

Bonsoir,

Le hic c'est que pour avoir le même résultat qu'avec des pop(), il
faut en plus ranger a[-c:] dans l'ordre inverse...

- Pierre



D'ailleurs la solution de chris ne donne pas non plus le bon résultat
pour le dernier ensemble (sauf quand il n'a qu'un seul élément...) :
il faudrait

a.reverse()
print a

ou bien : print [a.pop() for x in range(len(a))]

Une solution possible :

a = list("0abcdefghijklmnopqrstuvwxyz")
b=5
while a:
c = [ a.pop() for x in range(min(b,len(a))) ]
print c

- Pierre