Фильтраций кортежа в Python:
- Используйте функцию filter() для фильтрации кортежа.
- Функция filter() возвращает итератор с результатом.
- Передайте объект в filter классу tuple(), чтобы преобразовать его в кортеж.
# ✅ Фильтрация кортежа
my_tuple = (1, 3, 5, 7, 9, 12)
filtered_tuple = tuple(
filter(lambda item: item > 5, my_tuple)
)
# 👇️ (7, 9, 12)
print(filtered_tuple)
# -----------------------------------------------------
# ✅ Фильтрация списка кортежей
list_of_tuples = [('Alice', 1), ('Bob', 2), ('Carl', 3), ('Delilah', 4)]
filtered_list = [tup for tup in list_of_tuples if tup[1] > 2]
# 👇️ [('Carl', 3), ('Delilah', 4)]
print(filtered_list)
Мы использовали функцию filter() для фильтрации кортежа.
Функция filter принимает функцию и итерируемый объект в качестве аргументов и создает итератор из элементов итерируемого объекта, для которых функция возвращает истинное значение.
Функция filter
возвращает объект filter
, поэтому нам пришлось передать объект filter
классу tuple(), чтобы преобразовать его в кортеж.
Если вы передаете None в качестве аргумента функции, все ложные элементы итерации удаляются.
my_tuple = (1, 0, '', 3, 5, 0, '')
filtered_tuple = tuple(
filter(None, my_tuple)
)
# 👇️ (1, 3, 5)
print(filtered_tuple)
Функция отфильтровала пустые строки и нули из кортежа.
Все значения, которые не соответствуют действительности, считаются ложными. Ложные значения в Python это:
- Константы, определенные как ложные: None и False.
- 0 (ноль) любого числового типа.
- Пустые последовательности и коллекции: “”(пустая строка), ()(пустой кортеж), [](пустой список), {}(пустой словарь), set()(пустой set), range(0)(пустая последовательность).
Кроме того, вы можете использовать понимание списка.
Чтобы отфильтровать кортеж:
- Используйте понимание списка для перебора кортежа.
- Возвращает по условию из списка.
- Используйте класс tuple() для преобразования списка в кортеж.
my_tuple = (1, 3, 5, 7, 9, 12)
filtered_tuple = tuple([item for item in my_tuple if item > 5])
# 👇️ (7, 9, 12)
print(filtered_tuple)
Генераторы списков используются для выполнения некоторой операции для каждого элемента или выбора подмножества элементов, удовлетворяющих условию.
На каждой итерации мы проверяем, больше ли элемент кортежа 5, и возвращаем результат.
Последний шаг — использовать класс tuple() для преобразования списка в кортеж.
Кортежи очень похожи на списки, но реализуют меньше встроенных методов и являются неизменяемыми.
Поскольку кортежи не могут быть изменены, единственный способ отфильтровать кортеж это вернуть новый кортеж, содержащий необходимые элементы.