Comment puis-je supprimer une plage (paragraphe) d'une liste en Python?

J'ai un simple, toujours consécutives liste ordonnée comme ceci:

all = [ 1, 2, 3, 4, 5, 6 ] # same as range( 1, 7 )

J'ai aussi current = 4. À la fin, je veux le all liste ressemble à ceci

altered = [ 1, 2, 5, 6 ]

Donc ce qui est arrivé a été retiré de la current nombre et l'avant 3.

current peut également être 1 et 0, donc je veux vous assurer qu'il ne renvoie pas d'erreur pour ces deux valeurs.

Pour l'exception current = 0, la modification de la liste, c'est comme cela

altered = [ 1, 2, 3, 4, 5 ]

Ce qui signifie que current = 0 supprime simplement le dernier numéro.

Je me sens comme vous pouvez probablement le code quelque chose de fantaisie avec des générateurs, mais je suce à écrire.

Merci d'avance!

Points de Bonus pour le faire en une seule ligne. Si le current = 0 est trop de problèmes, alors il pourrait également être current = -1 ou current = 7.

EDIT: assurez-vous de vérifier pour current = 1, qui devrait être

altered = [ 2, 3, 4, 5, 6 ]
Lorsque le courant==4 4 retirés de la liste, car il a la valeur 4 ou parce qu'il est en quatrième position (lors du comptage de l'un)? De même, le 3 supprimé car il est le plus petit nombre inférieur à 4, ou parce que c'est sur l'index précédent l'élément supprimé?
La liste est toujours un range() de sorte qu'il n'a pas d'importance si vous le regardez comme un poste ou de la valeur.
N'appelez pas vos listes all comme il y a un construit en fonction de all() et qui supprime l'accès une fois que vous utilisez le nom.

OriginalL'auteur hobbes3 | 2012-04-10