There are a large number of questions on iterating over nested lists, however I would like to iterate over a nested list and apply another list.

Here is my scenario:

```
def operation(a, b):
    return a + b

def magic_function(func, list, nested_list):
    """iterate over nested_list and apply the next element of list"""
    ...

magic_function(operation, [0, 0, 0, 10, 10, 10], [[1, 2, 3], [1, 2, 3]])

```

---

Desired output:

```
[[1, 2, 3], [11, 12, 13]]

```

The urge might be strong to answer this with numpy, but in the real scenario, these are objects, not numbers.

The standard `itertools.chain.from_iterable` does not work here, since it does not preserve the nesting of the list.