Ошибка исходит из оператора b = 2.
squared = list(map(partial(pow, b=2), range(10))
Функция с частичной передачей ключевого параметра 'b' в функцию pow, что приводит к ошибке, так как функция pow ()принимает только позиционные аргументы.См. help(pow)
для получения дополнительной информации.
Однако другая проблема, с которой я сталкиваюсь в этом вызове, заключается в том, что частичная функция работает неожиданным образом:
map(partial(pow, 2), range(10))
приводит к созданию этой последовательности:
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
, который показывает, что частичная функция фактически вычисляет 2^range(10)
Если вы пытаетесь квадратировать каждое значение в списке, я бы порекомендовал упростить код с помощью лямбда-функции:
b=2
test = map(lambda x: x**b, range(10))
print(list(test))
, что приводит к:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
без импорта.