from typing import Iterable
from typing import Callable
from typing import List


def apply_list(funcs: Iterable[Callable], struct: Iterable) -> List:
    """Apply each function in an Iterable to corresponding item in another.

    Example:
        >>> funcs = [lambda x: x ** 2, lambda x: 2 * x]
        >>> its = [3, 4]
        >>> apply_list(funcs, its)
        [9, 8]
    """
    return [fn(it) for fn, it in zip(funcs, struct)]