Меня немного смущает map
в python. Функция для map
принимает 2 параметра: `map(функция, переменные).
Почему приведенный ниже код может принимать multiply
и add
в качестве переменных, а второй код не может? В обычном случае multiply
следует передавать как функцию, проверьте диапазон.
def multiply(x):
return x * x
def add(x):
return x + x
funcs = [multiply, add]
for i in range (1, 5):
value = list(map(lambda x: x(i), funcs))
print(value)
Это второй код:
def multiply(x):
return x * x
def add(x):
return x + x
funcs = (add, multiply)
multi_func = (multiply)
for i in range (1, 5):
value = list(map(lambda x: x(i), multi_func))
print(value)
Можно ли использовать 1 функцию и по-прежнему использовать для диапазона?
Использование диапазона:
map(multiply, range(1, 5))
multi_func = (multiply,)
- person andrew_reece   schedule 25.09.2018lambda x: x(i)
просто вызывает свой аргумент, а итерируемый объект, который вы пытались передать, является итерируемым из вызываемых объектов (т.е. функций) - person juanpa.arrivillaga   schedule 25.09.2018