Введение
В этом испытании вы напишете функцию на Python, которая разделяет список на две группы в зависимости от результата заданной функции фильтрации. Это распространенная задача в программировании, особенно при работе с большими наборами данных.
This tutorial is from open-source community. Access the source code
💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал
В этом испытании вы напишете функцию на Python, которая разделяет список на две группы в зависимости от результата заданной функции фильтрации. Это распространенная задача в программировании, особенно при работе с большими наборами данных.
Напишите функцию bifurcate_by(lst, fn)
, которая принимает список lst
и функцию фильтрации fn
в качестве аргументов. Функция должна разделить список на две группы в зависимости от результата функции фильтрации. Если функция фильтрации возвращает истинное значение для элемента, он должен быть добавлен в первую группу. В противном случае он должен быть добавлен ко второй группе.
Ваша функция должна возвращать список из двух списков, где первый список содержит все элементы, для которых функция фильтрации вернула истинное значение, а второй список содержит все элементы, для которых функция фильтрации вернула ложное значение.
Используйте списочное выражение для добавления элементов в группы в зависимости от значения, возвращаемого fn
для каждого элемента.
def bifurcate_by(lst, fn):
return [
[x for x in lst if fn(x)],
[x for x in lst if not fn(x)]
]
bifurcate_by(['beep', 'boop', 'foo', 'bar'], lambda x: x[0] == 'b')
## [ ['beep', 'boop', 'bar'], ['foo'] ]
В этом испытании вы узнали, как разделить список на две группы в зависимости от результата заданной функции фильтрации. Вы использовали списочное выражение для добавления элементов в группы в зависимости от значения, возвращаемого функцией фильтрации для каждого элемента. Это полезный прием в программировании, особенно при работе с большими наборами данных.