You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中enumerate对象二次转列表为何返回空?

问题解答

先看你的代码:

a = "NITISH"
a = enumerate(a)
print(list(a))
print(a)
a = list(a)
print(a)

实际输出:

[(0, 'N'), (1, 'I'), (2, 'T'), (3, 'I'), (4, 'S'), (5, 'H')]
<enumerate object at 0x0000028262DE7150>
[]

为什么最后输出是空列表?

核心原因是:enumerate() 返回的是迭代器对象,这类对象只能被遍历一次。

  • 第一次调用 list(a) 时,已经把迭代器里的所有元素全部取出来转换成列表了,这时候迭代器内部的指针已经走到了末尾,没有剩余元素可以读取。
  • 之后再调用 list(a),这个迭代器已经被耗尽了,自然只能返回空列表。

怎么解决?

如果需要多次使用枚举后的元素,别直接存迭代器,而是一开始就把它转换成列表保存:

a = "NITISH"
a = list(enumerate(a))  # 直接转成列表存起来
print(a)
print(a)
print(a)

这样每次打印都会得到相同的结果。

内容的提问来源于stack exchange,提问作者nitish ranjan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 07:57:04