Для передачи функции в качестве аргумента и вызова её с передачей параметров в Python, можно использовать концепцию "функции высшего порядка". Вот пример:
```python
def my_function(arg1, arg2):
return arg1 + arg2
def execute_function(func, arg1, arg2):
result = func(arg1, arg2)
return result
result = execute_function(my_function, 2, 3)
print(result) # Вывод: 5
```
В данном примере, `my_function` - это функция, которую мы передаем в качестве аргумента `func` в `execute_function`. Затем, мы вызываем `func` с передачей аргументов `arg1` и `arg2`.
Для реализации цикла map, можно написать метод, который будет принимать список и функцию, и затем применять эту функцию к каждому элементу списка. Вот пример:
```python
def my_map(func, lst):
result = []
for item in lst:
transformed_item = func(item)
result.append(transformed_item)
return result
def double(x):
return x * 2
my_list = [1, 2, 3, 4, 5]
mapped_list = my_map(double, my_list)
print(mapped_list) # Вывод: [2, 4, 6, 8, 10]
```
В данном примере, `my_map` принимает функцию `func` и список `lst`. Он проходит по каждому элементу списка, применяет функцию `func` к каждому элементу и добавляет результат в новый список `result`. Функция `double` принимает число и возвращает его удвоенное значение. Наконец, через вызов `my_map(double, my_list)` мы получаем список, в котором каждый элемент списка `my_list` удвоен.