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

Zen*_*Zen 3 python dictionary enumeration enumerate

我正在阅读python cookbook,它提到enumerate()返回一个迭代器,产生表单的所有对(两个-itm元组)(index,item)

我可以使用d = dict(枚举(L))来制作一个词典.

根据我的理解,我认为enumerate()返回一个元组.并且dict()可以将元组变成dict.

所以我尝试过:

dict((1,2))
Run Code Online (Sandbox Code Playgroud)

弹出TypeError.

所以我想知道枚举什么对象实际上返回哪个dict()可以使它成为一个字典?

ale*_*cxe 5

dict()构造函数接受一个iterable的序列key,value对.

你的片段dict((1,2))无效,因为你传递了(1,2)key,value对元组.它迭代(1,2)并在期望序列的同时找到整数.

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

>>> dict(((1,2),))
{1: 2}
Run Code Online (Sandbox Code Playgroud)

或者,例如,列表:

>>> dict([[1,2]])
{1: 2}
Run Code Online (Sandbox Code Playgroud)

enumerate()返回一个enumerate对象,它是一对元组对的迭代器:

>>> 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)]
Run Code Online (Sandbox Code Playgroud)

希望能让你更清楚.