Как удалить список в Python?

Кажется, это так «грязно» опустошает список таким образом:

while len(alist) > 0 : alist.pop() 

Существует ли четкий способ сделать это?

  • Доступ к индексу в циклах Python for for
  • python выбирает определенные элементы из списка
  • Удалите дубликаты в списке, сохраняя при этом его порядок (Python)
  • Использование функции startswith () внутри списков в python
  • Ссылка на часть списка - Python
  • Нечувствительный к регистру 'in' - Python
  • SyntaxError с VirtualEnv + mod-wsgi в Django
  • Как я могу скрыть заголовок окна главного окна и поместить прозрачный фон в рамки kivy?
  • Сигнал Python не работает даже на Cygwin?
  • Как установить тайм-аут для urlfetch в Google App Engine?
  • python, Json и строковые индексы должны быть целыми, а не str
  • Интегрируйте оценку плотности 2D ядра
  • 6 Solutions collect form web for “Как удалить список в Python?”

    Это фактически удаляет содержимое из списка, а не заменяет старую метку новым пустым списком

     del lst[:] 

    пример:

     lst1 = [1, 2, 3] lst2 = lst1 del lst1[:] print(lst2) 

    Для полноты назначение среза дает такой же эффект:

     lst[:] = [] 

    и может использоваться для сокращения части списка при одновременном замене части (но выходит за рамки вопроса).

    Обратите внимание, что выполнение lst = [] не пустет список, просто создает новый объект и связывает его с переменной lst , но старый список будет по-прежнему иметь одни и те же элементы, и эффект будет очевидным, если бы он имел другие привязки переменных.

    Вы можете попробовать:

     alist[:] = [] 

    Это означает: объединение в списке [] (0 элементов) в месте [:] (все индексы от начала до конца)

    [:] – это оператор среза. См. Этот вопрос для получения дополнительной информации.

    Если у вас есть Python 3.3 или выше, вы можете использовать метод clear() list который является параллельным clear() для dict , set , deque и других изменяемых типов контейнеров:

     alist.clear() # removes all items from alist (equivalent to del alist[:]) 

    В соответствии с связанной страницей, то же самое может быть достигнуто с помощью alist *= 0 .

    получается, что с python 2.5.2 del l[:] немного медленнее, чем l[:] = [] на 1.1 usec.

     $ python -mtimeit "l=list(range(1000))" "b=l[:];del b[:]" 10000 loops, best of 3: 29.8 usec per loop $ python -mtimeit "l=list(range(1000))" "b=l[:];b[:] = []" 10000 loops, best of 3: 28.7 usec per loop $ python -V Python 2.5.2 

    Другой простой код, который вы можете использовать (в зависимости от вашей ситуации):

     index=len(list)-1 while index>=0: del list[index] index-=1 

    Вам нужно начинать индексировать по длине списка и идти назад по сравнению с индексом на 0, вперед, потому что это приведет к тому, что индекс будет равен длине списка, при этом он будет сокращен вдвое.

    Кроме того, убедитесь, что строка while имеет знак «больше или равно». Опуская это, вы оставите список со списком [0].

     list = [] 

    сбросит list до пустого списка.

    Обратите внимание, что вы вообще не должны затенять зарезервированные имена функций, такие как list , который является конструктором для объекта списка – например, вы можете использовать lst или list_ , например.

    Python - лучший язык программирования в мире.