Удаление элементов из списка, содержащего определенные символы

Я хочу удалить все элементы в списке, который содержит (или не содержит) набор конкретных символов, однако я столкнулся с проблемами, повторяющимися по списку, и удалением элементов по мере продвижения. Ниже приведены два довольно равных примера этого. Как вы можете видеть, если два элемента, которые должны быть удалены, непосредственно следуют друг за другом, второй не удаляется.

Я уверен, что есть очень простой способ сделать это в python, поэтому, если кто-нибудь знает это, пожалуйста, помогите мне – я в настоящее время делаю копию всего списка и итерации по одному и удаляя элементы в другом … Не хорошее решение, которое я предполагаю

>>> l ['1', '32', '523', '336'] >>> for t in l: ... for c in t: ... if c == '2': ... l.remove(t) ... break ... >>> l ['1', '523', '336'] >>> l = ['1','32','523','336','13525'] >>> for w in l: ... if '2' in w: l.remove(w) ... >>> l ['1', '523', '336'] 

Догадаться:

 >>> l = ['1','32','523','336','13525'] >>> [x for x in l if not '2' in x] ['1', '336'] 

Хотелось бы также знать, есть ли способ установить итерацию назад один набор при использовании для x в l.

3 Solutions collect form web for “Удаление элементов из списка, содержащего определенные символы”

Перечни:

 >>> l = ['1', '32', '523', '336'] >>> [ x for x in l if "2" not in x ] ['1', '336'] >>> [ x for x in l if "2" in x ] ['32', '523'] 

Если я правильно вас пойму,

 [x for x in l if not "2" in x] 

может выполнить эту работу.

У вас может возникнуть проблема в том, что вы пытаетесь изменить последовательность в одно и то же время, когда вы зацикливаете на нее для цикла t.

  • Вычисление хеша md5 структуры данных
  • Закрепление неравных списков в python в список, который не отбрасывает ни один элемент из более длинного списка,
  • Как кортеж реализован в CPython?
  • csv для разреженной матрицы в python
  • Есть ли библиотека Python для обработки сложных математических наборов (построенных с использованием математической записи set-builder)?
  • Структура данных Python для эффективного добавления, удаления и random.choice
  • Что такое модуль heapq Python?
  • Что бы вы использовали модуль heapq Python в реальной жизни?
  • Python - лучший язык программирования в мире.