<enumerate object at 0x7f0211ea2360>

<enumerate object at 0x7f0211ea2360>

我运行下面的代码在Python3.5.2得到了相应的输出

>>> example = ['a','b','c','d','e']
>>> enumerate(example)
<enumerate object at 0x7f0211ea2360>

我无法理解这是什么意思output.Why输出不是这样的吗

 (0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e') 

当我使用列表来包含这些元组时,输出令人满意

>>> list(enumerate(example))
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e')]

注意:我是 python 的新手,当我发布这个问题时,我不知道地图功能,所以我没有提到这个问题

这纯粹是Python 3中的设计选择,因为enumerate经常被用在loops/list理解中,所以不需要生成full-fledged列表和分配内存对于以后很可能未使用的临时对象。

大多数人使用 for i,e in enumerate(example):,所以他们甚至没有注意到生成器方面,memory/CPU 足迹更少。

要获得实际的 listset,您必须像以前那样明确地强制迭代。

(请注意,与 rangezipmap 相反,enumerate 一直是一个生成器,即使在 python 2.7 中,很好从头选择)

l1 = ['a','b','c','d','e']
for i in enumerate(l1):
   print i

理解枚举

train_ids是我训练对象的列表。

aa=enumerate(train_ids)
type(aa)
for i in aa:
    print(i)