Ответ 1
Вы должны сначала превратить карту в список или кортеж. Для этого
print(list(F_temps))
Это потому, что карты лениво оцениваются, то есть значения рассчитываются только по требованию. Давай посмотрим пример
def evaluate(x):
print(x)
mymap = map(evaluate, [1,2,3]) # nothing gets printed yet
print(mymap) # <map object at 0x106ea0f10>
# calling next evaluates the next value in the map
next(mymap) # prints 1
next(mymap) # prints 2
next(mymap) # prints 3
next(mymap) # raises the StopIteration error
Когда вы используете map в цикле for, цикл автоматически вызывает для вас next
и рассматривает ошибку StopIteration как конец цикла. Вызов list(mymap)
заставляет оценивать все значения карты.
result = list(mymap) # prints 1, 2, 3
Однако, поскольку наша функция evaluate
не имеет возвращаемого значения, result
это просто [None, None, None]