Как удалить диапазон (подраздел) списка в Python?

У меня есть простой список всегда упорядоченных по порядку:

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

У меня также есть current = 4 . В конце концов, я хочу, чтобы all список выглядел так

 altered = [ 1, 2, 5, 6 ] 

Так что случилось, так это то, что он удалил current номер и тот, который был перед ним 3 .

current также может быть 1 и 0 , поэтому я хочу убедиться, что он не выдает ошибку для этих двух значений.

Для исключения current = 0 измененный список выглядит следующим образом:

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

Это означает, что current = 0 просто удаляет последнее число.

Я чувствую, что вы, вероятно, можете что-то придумать с генераторами, но я сосать их писать.

Заранее спасибо!

Бонусные баллы за это в одной строке. Если current = 0 слишком много проблем, тогда он также может быть current = -1 или current = 7 .

РЕДАКТИРОВАТЬ: Обязательно проверяйте current = 1 , который должен быть

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

4 Solutions collect form web for “Как удалить диапазон (подраздел) списка в Python?”

 all = all[:max(current - 2, 0)] + all[current:] 

или

 del all[max(current - 2, 0):current] 

Будет ли это работать?

 >>> all = range(1, 7) >>> new = all[:2]+all[4:] >>> print new [1, 2, 5, 6] 
 all[:max(current-2,0)] + all[max(current,0):][:-1] + all[-1:]*(0 < current < len(all)) 
 >>> all = range(1,7) >>> current = 4 >>> [item for item in all if item != current and item != current-1] [1, 2, 5, 6] >>> current = 0 >>> [item for item in all if item != current and item != current-1] [1, 2, 3, 4, 5, 6] 
  • Вычитание по списку множеств
  • Функции PISTON LIST не возвращают новые списки
  • вычисление частот во вложенном списке
  • Доступ к типу списка Python
  • Вызывать функцию int () для каждого элемента списка?
  • Каков самый быстрый способ добавить данные в список без дублирования в python (2.5)
  • Поиск более эффективного способа реорганизации массива CSV в Python
  • Изменение списка во время итерации по нему - почему бы и нет?
  • Поиск самого длинного списка в списке списков в Python
  • Python 2: различное значение ключевого слова «in» для наборов и списков
  • Присвоить значение отдельной ячейке в двухмерном массиве python
  • Python - лучший язык программирования в мире.