我正在阅读python cookbook,它提到了enumerate()返回一个迭代器,产生了表单(index,item)的所有对(两个-itm元组)
我可以使用d = dict(枚举(L))来制作一个词典。
根据我的理解,我认为enumerate()返回一个元组。并且dict()可以将元组变成dict。
所以我试过了:
dict((1,2))
弹出TypeError。
所以我想知道枚举的实际对象实际返回哪个dict()可以使它成为一个字典?
答案 0 :(得分:5)
dict()
构造函数接受iterable
个key,value
对序列。
您的代码段dict((1,2))
无效,因为您传递了一对(1,2)
,一对key,value
对。它迭代(1,2)
并在期望序列的同时找到整数。
相反,你应该传递一个包含一对的元组:
>>> dict(((1,2),))
{1: 2}
或者,例如,列表:
>>> dict([[1,2]])
{1: 2}
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)]
希望能让你更清楚。
答案 1 :(得分:1)
这是它自己的类型:
>>> type(enumerate([]))
<class 'enumerate'>