Python中地图功能的行为

时间:2018-06-20 21:01:59

标签: python python-3.x

我不明白如何以及为什么第一次打印对象的引用(该对象是指哪个对象?)和第二次引用当我使用两个变量时,这些变量获得函数的结果而不是引用。

>>> a = map(int,[1,2])
>>> a
<map object at 0x7f0b1142fa90>

>>> b,c = a
>>> b
1
>>> c
2

1 个答案:

答案 0 :(得分:1)

在Python 3中,map(和其他原始组合器)返回一个迭代器对象,而不是列表(就像以前一样)。第一次尝试时,您本身就打印了该迭代器对象,而第二次是您将其与序列匹配,从而强制和提取元素。考虑:

>>> a = map(int,[1,2])
>>> a
<map object at 0x7ff6ddbfe748>
>>> list(a)
[1, 2]