Удаление нужных элементов из списка
Имеется список list_of_elements, а также список булевых значений del_mapper. Требуется из списка list_of_elements удалить те значения, по индексам которых в списке del_mapper стоит True. То есть нужно удалить из списка list_of_elements первый и третий элементы.
list_of_elements = [1, 2, 4, 2, 12, 83]
del_mapper = [True, False, True]
result = [2, 2, 12, 83]
Как этого добиться, не создавая промежуточных списков и просто из списка list_of_elements получить нужный результат видоизменив его содержимое?
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
не создавая промежуточных списков и просто из списка list_of_elements получить нужный результат видоизменив его содержимое
Шаги:
- Перебор индексов
del_mapperв обратном порядке, чтобы при удалении элементовlist_of_elementsпорядок индексов оставался актуальным - Проверка значения флага
del_mapper[i] - Возможно, понадобится добавить проверку
i-- чтобы не было выхода за пределыlist_of_elements
Попробуйте:
list_of_elements = [1, 2, 4, 2, 12, 83]
del_mapper = [True, False, True]
for i in reversed(range(len(del_mapper))):
if del_mapper[i]:
list_of_elements.pop(i)
print(list_of_elements)
# [2, 2, 12, 83]