Q. Фильтрация словаря

Напишите lambda выражение для фильтрации элементов словаря. Вам следует оставить только те элементы, в которых значением являются списки содержащие хотя бы одно чётное число.

Примечание

В решении не должно быть ничего, кроме выражения.

Пример

Ввод

print(dict(filter(
    <ваше выражение>,
    {'first': 2, 'second': '2 + 2 = 4', 'third': [1, 2, 3]}.items()
)))

Вывод

{'third': [1, 2, 3]}

Ввод

print(dict(filter(
    <ваше выражение>,
    {'first': [7, 2, '1'], 'second': (45, 2, 14), 'third': [98]}.items()
)))

Вывод

{'first': [7, 2, '1'], 'third': [98]}

Решение

Получив паку ключ/значение, убеждаемся, что значение — список, если да, начинаем перебирать элементы списка.
Для каждого элемента сначала проверяем, что оно является целым числом и если это так, то проверяем его четность. Если оно четное — возвращаем True.
Если дошли до конца списка и подхоящий элемент не найден, возвращаем False.

Фактически нас просят завернуть в лямбда функцию следующий код:

Python
def is_list_with_even(kv):
    value = kv[1]
    if not isinstance(value, list):
        return False
    for x in value:
        if isinstance(x, int) and x % 2 == 0:
            return True
    return False
Посмотреть код

Решение

Python
lambda kv: isinstance(kv[1], list) and any(isinstance(x, int) and x % 2 == 0 for x in kv[1])