Как удалить истинные значения в списке Python?
В Python списки, пожалуй, являются наиболее часто используемыми структурами данных, которые позволяют нам хранить различные элементы. Время от времени мы можем столкнуться с обстоятельствами, когда нам действительно хочется удалить явные элементы из списка. В этой статье мы обсудим пять различных методов удаления значений True из списка Python. Мы рассмотрим алгоритм, приведем примеры кода, покажем результат и завершим сравнением методов.
Введение
Рассмотрим ситуацию, когда у нас есть список, содержащий комбинацию логического типа и различных типов информации, и нам нужно удалить из этого списка все события True. Python предоставляет нам несколько способов справиться с этой задачей. Мы рассмотрим 6 различных методов, чтобы уделять особое внимание различным склонностям и вариантам использования.
Давайте сначала рассмотрим пример ввода и вывода.
Ввод
[True, 2, False, True, 4, True, 6, True]
Вывод
[2, False, 4, 6]
Объяснение: True — это логическое значение, представляющее логическое состояние True. Есть 2 встроенных логических константы: True и False.
Наша цель — удалить значения True из списка и оставить все остальные значения. Во входных данных выше True встречается в позициях (не индексах) 1,4,6,8, которые удаляются и, следовательно, оставляют нас позади с остальной частью списка, состоящей из значений 2, False, 4 и 6.
Метод 1: Наивный метод
Алгоритм
Создайте функцию delete_true_naive, которая принимает список информации в качестве объекта конкуренции.
Установите для переменной списка значение 0.
Хотя список не соответствует длине информационного списка:
Предполагая, что элемент текущего списка имеет значение True, удалите его с помощью метода pop().
В любом случае увеличьте список на 1.
Вернуть измененный список информации
Пример
def delete_true_naive(input_list):
index = 0
while index < len(input_list):
if input_list[index] == True:
input_list.pop(index)
else:
index += 1
return input_list
sample_list = [True, 2, False, True, 4, True, 6, True]
print("Naive Method Output:", delete_true_naive(sample_list.copy()))
Выход
Naive Method Output: [2, False, 4, 6]
Метод 2: использование понимания списка
Алгоритм
Создайте возможность delete_true_list_comrehension, которая признает список данных как конфликт.
Используйте восприятие списка, чтобы сделать еще одно краткое изложение, объединяющее только те компоненты из списка данных, которые не идентичны действительным.
-
Верните новое изложение.
Пример
def delete_true_list_comprehension(input_list):
return [element for element in input_list if element != True]
sample_list = [True, 2, False, True, 4, True, 6, True]
print("Using list comprehension output:", delete_true_list_comprehension(sample_list.copy()))
Выход
Using list comprehension output: [2, False, 4, 6]
Стратегия 3. Использование функции filter() с функцией Lambda.
Алгоритм
Создайте возможность delete_true_filter, которая признает список данных спорным.
Используйте возможность канала() рядом с возможностью лямбда-выражения для фильтрации компонентов из списка данных, которые не сопоставимы с допустимыми.
Преобразуйте изолированный результат обратно в краткое изложение, используя функцию rundown().
Вернуть отфильтрованный список.
Пример
def delete_true_filter(input_list):
return list(filter(lambda x: x != True, input_list))
sample_list = [True, 2, False, True, 4, True, 6, True]
print("Using filter() Result:", delete_true_filter(sample_list.copy()))
Выход
Using filter() Result: [2, False, 4, 6]
Стратегия 4: Использование метода удаления()
Алгоритм
Создайте функцию delete_true_remove, которая распознает конфликт списка данных.
Используйте некоторый временной круг для перефразирования в течение любого периода времени, доступного в списке данных.
Внутри круга используйте метод устранения(), чтобы исключить важный элемент Valid из списка.
Вернуть измененный список данных.
Пример
def delete_true_remove(input_list):
while True in input_list:
input_list.remove(True)
return input_list
sample_list = [True, 2, False, True, 4, True, 6, True]
print("Using remove() Result:", delete_true_remove(sample_list.copy()))
Выход
Using remove() Result: [2, False, 4, 6]
Метод 5: использование функции List Comprehension и enumerate()
Алгоритм
Создайте функцию delete_true_enum, которая принимает список информации в качестве объекта конкуренции.
-
Используйте понимание списка вместе с функцией count(), чтобы выделить информацию из списка, одновременно отслеживая как список, так и значение каждого элемента.
Запомните только те элементы нового списка, значение которых не эквивалентно True.
Верните новый список.
Пример
def delete_true_enum(input_list):
return [value for index, value in enumerate(input_list) if value != True]
# Sample list
sample_list = [True, 2, False, True, 4, True, 6, True]
# Output
print("Using List Comprehension and enumerate() Output:", delete_true_enum(sample_list.copy()))
Выход
Using List Comprehension and enumerate() Output: [2, False, 4, 6]
Способ 6: использование itertools.filterfalse()
Модуль itertools обычно используется для обработки сценариев итерации, а filterfalse используется для возврата значений, которые возвращают ложное значение из указанной функции. Он принимает 2 входа: функция; объект для итерации; Значение, которое возвращает filterfalse, — это значение, возвращающее false после передачи функции (переданной в качестве аргумента).
Алгоритм
Прежде всего мы импортируем функцию filterfalse() из модуля itertools.
Следующим шагом будет создание функции delete_true_itertools, которая принимает входной список в качестве аргумента.
Затем мы используем filterfalse() с лямбда-функцией, чтобы отфильтровать значения True из списка.
После этого мы преобразуем отфильтрованный результат обратно в список с помощью функции list().
Наконец, верните новый список без значений True.
Пример
from itertools import filterfalse
def delete_true_itertools(input_list):
return list(filterfalse(lambda x: x == True, input_list))
sample_list = [True, 2, False, True, 4, True, 6, True]
print("Using itertools.filterfalse() Result:", delete_true_itertools(sample_list.copy()))
Выход
Using itertools.filterfalse() Result: [2, False, 4, 6]
Заключение
В этом посте мы узнали о 6 различных способах избавиться от значений True из списка в Python, и они включают в себя наивный подход, понимание списка, filter() с лямбда-функцией, функцию удаления и понимание списка в сочетании с перечислением.(). Наконец, среди доступных способов также имеется функция filterfalse модулей itertools. Лучший подход будет зависеть от конкретного варианта использования и требований к производительности, хотя для небольших списков все методы могут эффективно удалять значения True.