python-3.x - python : casting map object to list makes map object empty?

标签 python-3.x casting

我有一个 map 对象,我想将其打印为列表,但之后继续用作 map 对象。实际上我想打印长度,所以我转换到列表,但如果我只打印内容,也会出现问题,如下所示:

print("1",my_map)
print("1",list(my_map))
print("2",my_map)
print("2",list(my_map))

这给了我以下输出。

1 <map object at 0x7fd2962a75f8>
1 [(1000.0, 1.0, 0.01, 0.01, 0.01, 0.01, 0.01)]
2 <map object at 0x7fd2962a75f8>
2 []

为什么会发生这种情况以及如何避免它继续使用 map 及其内容?

最佳答案

map 对象是调用 map() 返回的生成器内置功能。它旨在仅被迭代(例如,通过将其传递给 list())一次,然后被消耗。尝试第二次对其进行迭代将导致空序列。

如果要保存映射值以供重复使用,则需要将 map 对象转换为其他序列类型,例如 list保存结果。所以改变你的:

my_map = map(...)

my_map = list(map(...))

之后,上面的代码应该按您的预期工作。

关于python-3.x - python : casting map object to list makes map object empty?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60322015/

相关文章:

python - 将传递的 arg 转换为字符串

date - Hive UDF 字符串到日期的转换

c++ - 类型(变量)与(类型)变量

python-3.x - 在 Pandas 数据透视表中显示映射标签而不是代码

python - 如何将查询列表传递给 pandas 数据框,并输出结果列表?

python - 将空字符串转换为零

c++ - 将 `unsigned char` 放入 `char`

python-3.x - 在 python3 中绘图(直方图)

python - 如何在 Tkinter 中捕获两个关键事件

python - 如何使用 scipy 稀疏矩阵 column_stack 一个 numpy 数组?