Python OrderedDict可迭代int

时间:2017-04-02 08:53:01

标签: python dictionary int

我正在学习字典,我写了一小段代码并构建它。

from collections import OrderedDict

d1 = OrderedDict([('a',0),('b',9),('c',8),('d',7),('e',6)])
d2 = OrderedDict([(1),(2),(3),(4),(5)])

我收到以下错误:

d2 = OrderedDict([(1),(2),(3),(4),(5)])
TypeError: 'int' object is not iterable

我不明白为什么它不可迭代? 'int'与问题有什么关系?

由于

3 个答案:

答案 0 :(得分:4)

根据记录here,您需要向key-value提供OrderedDict对。

其核心OrderedDictdictionary,因此value需要key才能存储>>a = (1) >>type(a) <class 'int'> 。 传递它(1)是错误的,因为:

integer

因此,(1)不是元组而是(1)对象。

答案 1 :(得分:3)

OrderedDict s(或dict的任何子类)是一组键值对。

>>> d1 = OrderedDict([('a',0),('b',9),('c',8),('d',7),('e',6)])
>>> d1['b']
9

以下声明不提供任何此类配对。

d2 = OrderedDict([(1),(2),(3),(4),(5)])

另请注意,(1)int (1,)tuple

答案 2 :(得分:1)

列表元素应该是2个项目的元组(一个键和另一个值)。

1变为int和{{1}}。所以python正在做的是尝试将其拆分为键值对。所以你得到了那个错误。