python中枚举返回的对象是什么?

python中枚举返回的对象是什么?,python,dictionary,enumeration,enumerate,Python,Dictionary,Enumeration,Enumerate,我正在阅读python烹饪书,书中提到enumerate()返回一个迭代器,该迭代器生成表单(index,item)的所有对(两项元组) 我可以用d=dict(枚举(L))来做一个dict 就我的理解而言,我认为enumerate()返回一个元组。dict()可以将元组转换成dict 所以我试着: dict((1,2)) 打印错误弹出 所以我想知道枚举的对象实际上返回了什么,哪个dict()可以将其转换为dict?它是它自己的类型: >>> type(enumerate([]

我正在阅读python烹饪书,书中提到enumerate()返回一个迭代器,该迭代器生成表单(index,item)的所有对(两项元组)

我可以用d=dict(枚举(L))来做一个dict

就我的理解而言,我认为enumerate()返回一个元组。dict()可以将元组转换成dict

所以我试着:

dict((1,2))
打印错误弹出

所以我想知道枚举的对象实际上返回了什么,哪个dict()可以将其转换为dict?

它是它自己的类型:

>>> type(enumerate([]))
<class 'enumerate'>
>类型(枚举([]))
构造函数接受一个
iterable
键、值对序列

您的代码段
dict((1,2))
不起作用,因为您正在传递元组
(1,2)
,一个
键,一对值。它迭代
(1,2)
,并在期望序列的同时查找整数

相反,您应该传递一个包含一对的元组:

>>> dict(((1,2),))
{1: 2}
或者,例如,列表:

>>> dict([[1,2]])
{1: 2}
返回
枚举
对象,该对象是元组对序列的迭代器:

>>> enumerate(range(10))
<enumerate object at 0x1059b0f50>
>>> list(enumerate(range(10)))
[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9)]
枚举(范围(10)) >>>列表(枚举(范围(10))) [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9)]

希望这能让您更清楚。

那么,我应该理解enumerate返回类似((0,item1))的内容吗?此外,现在我想我知道了dict()的工作原理,它接受所有类型的成对数据。像[(1,2)],甚至dict本身{1:2}一样,enumerate返回成对序列上的迭代器-这是dict作为参数接受的-这就是它工作的原因。