Удалить несколько элементов из списка в Python

Так, например, у меня есть список: myList=["asdf","ghjk","qwer","tyui"]
У меня также есть список номеров индексов элементов, которые я хочу удалить: removeIndexList=[1,3] (я хочу удалить элементы 1 и 3 из списка выше)

Какой был бы лучший способ сделать это?

2 Solutions collect form web for “Удалить несколько элементов из списка в Python”

Используйте представление списка с enumerate() :

 newlist = [v for i, v in enumerate(oldlist) if i not in removelist] 

вместо того, чтобы сделать removelist set , поможет ускорить работу:

 removeset = set(removelist) newlist = [v for i, v in enumerate(oldlist) if i not in removeset] 

Демо-версия:

 >>> oldlist = ["asdf", "ghjk", "qwer", "tyui"] >>> removeset = set([1, 3]) >>> [v for i, v in enumerate(oldlist) if i not in removeset] ['asdf', 'qwer'] 

Очевидный способ не будет работать:

 list=["asdf","ghjk","qwer","tyui"] removelist=[1,3] for index in removelist: del list[index] 

Проблема в том, что после того, как вы удалили # 1, «ghjk», все после этого переместится вперед. Так что # 3 больше не «тюй», это конец списка.


Вы можете решить это, убедившись, что вы идете назад:

 list=["asdf","ghjk","qwer","tyui"] removelist=[1,3] for index in sorted(removelist, reverse=True): del list[index] 

Однако, как правило, лучше просто создать новый отфильтрованный список, как предположил Мартин Пайтерс:

 list = [v for i, v in enumerate(list) if i not in removelist] 
  • Как искать список, который находится во вложенном списке (список списка) без цикла в Python?
  • Python: длина самой длинной общей подпоследовательности списков
  • изменяемый тип внутри неизменяемого контейнера
  • Добавление нескольких элементов в список в Python
  • разбивать список в под списках по количеству элементов
  • Различное поведение для списка .__ iadd__ и list .__ add__
  • Pythonic способ вернуть список каждого n-го элемента в более крупном списке
  • вывести список с элементом с \ xae и распечатать результаты
  •  
    Interesting Posts for Van-Lav

    python – как я могу объединить объект datetime с последним предыдущим кварталом?

    Как открыть запись зарезервированного файла excel в python с помощью win32com?

    Python Recv () останавливается

    Изменить объект r с помощью rpy2

    Какие существуют технологии для создания автономных исполняемых файлов для Python 3?

    Оптимальный способ вычисления парной взаимной информации с использованием numpy

    Как создать меню, которое не требует, чтобы пользователь нажал , чтобы сделать выбор?

    Библиотеки API Python против C # Twitter

    Размещение графика в главном окне Tkinter в Python

    Как определить, установлена ​​ли java на систему через python?

    Как вручную разобрать исходящий адрес GAE?

    Почему avi-файл не может быть открыт в OpenCV-Python

    Как передать переменную в декораторе аргументу функции в украшенной функции?

    Как импортировать src из модуля тестирования в python

    Для Pylint возможно ли иметь другой файл pylintrc для каждого проекта Eclipse?

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