R. Преобразование словаря

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

Примечание

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

Пример

Ввод

print(dict(map(
    <ваше выражение>,
    {'First 1': 2, 'second:': (2, 1, 1), 'THIRD': [1, 2, 3]}.items()
)))

Вывод

{'first': 2, 'second': 4, 'third': 6}

Решение

Проходим по всем парам ключ–значение исходного словаря.
Ключ приводим к нижнему регистру и удаляем все символы, кроме букв при помощи isalpha().
Проверяем тип значения. Если оно итерируемое и при этом не строка и не словарь, то суммируем значения. В противном случае, оставляем как есть.

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

Python
def transform_item(kv):
    key, value = kv

    new_key = ''.join(c for c in key.lower() if c.isalpha())

    if hasattr(value, '__iter__') and not isinstance(value, (str, dict)):
        new_value = sum(value)
    else:
        new_value = value

    return new_key, new_value
Посмотреть код

Решение

Python
lambda kv: (''.join(c for c in kv[0].lower() if c.isalpha()),
            sum(kv[1]) if hasattr(kv[1], '__iter__') and not isinstance(kv[1], (str, dict)) else kv[1])