I. Странное произведение

Напишите функцию product, принимающую, неопределенное количество позиционных и именованных параметров.

Каждую строку, переданную в качестве позиционного параметра, функция должна заменить на произведение значений именованных параметров, которые встретились в ней.
Результатом функции должен являться кортеж полученных чисел.

Если для строки не нашлось именованных параметров, то и в результатах она должна отсутствовать.

Примечание

В решении не должно быть вызовов требуемых функций.

Пример

Ввод

result = product("Ann", "Bob", A=2, n=7, b=3)

Вывод

result = (14, 3)

Ввод

result = product("Ann", "Bob", "Chuck", a=9, n=5, u=3, c=2, A=5)

Вывод

result = (25, 6)

Решение

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

Посмотреть код

Решение

Python
def product(*args, **kwargs):
    results = []
    keys = list(kwargs.keys())

    for arg in args:

        factors = []
        for key in keys:
            if key in arg:
                factors.append(kwargs[key])

        if factors:
            prod = 1
            for value in factors:
                prod *= value
            results.append(prod)

    return tuple(results)
    
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии