Comment puis faire (appel aux codeurs fous)

Le
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 :

==
==
a = list("abcdefghijklmnopqrstuvwxyz")

b=5

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

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

qq a une idée ?

A+
merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel Claveau - MVP
Le #22925511
Bonsoir !

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

@+
--
Michel Claveau
Pierre Quentel
Le #22925921
On 14 déc, 21:01, "Michel Claveau -
MVP"
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
Pierre Quentel
Le #22925991
On 14 déc, 22:44, Pierre Quentel
On 14 déc, 21:01, "Michel Claveau -

MVP" > 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
Publicité
Poster une réponse
Anonyme