python - 如何使用 Python 3 打印 map 对象?

标签 python python-3.x

<分区>

这是我的代码

def fahrenheit(T):
    return ((float(9)/5)*T + 32)

temp = [0, 22.5, 40,100]
F_temps = map(fahrenheit, temp)

这是 mapobject 所以我尝试了这样的东西

for i in F_temps:
    print(F_temps)

<map object at 0x7f9aa050ff28>
<map object at 0x7f9aa050ff28>
<map object at 0x7f9aa050ff28>
<map object at 0x7f9aa050ff28>

我不确定,但我认为我的解决方案适用于 Python 2.7,如何使用 3.5 更改它?

最佳答案

你必须先把 map 变成列表或元组。为此,

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

当您在 for 循环中使用 map 时,循环会自动为您调用 next,并将 StopIteration 错误视为循环结束。调用 list(mymap) 强制计算所有 map 值。

result = list(mymap) # prints 1, 2, 3

但是,由于我们的evaluate 函数没有返回值,result 就是[None, None, None]

关于python - 如何使用 Python 3 打印 map 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44461551/

相关文章:

python-3.x - 是否可以使用 Matplotlib 创建 2 边条形图

python - 如何从python中的txt中逐列读取数据表

python - 上游超时(uWSGI + NGINX + Flask)

python - 从namedtuple继承子类

django - 模块未找到错误 : No module named 'textencoder' error when upgraded to python 3

Python3 Tkinter 字体不工作

python - 将列表拆分为 N 部分以获取元组列表

python - 在 vagrant 的 Django 应用程序中创建迁移文件夹的权限被拒绝

python - 从 python 结果创建文件

python - Python 中的多个函数