我正在学习字典,我写了一小段代码并构建它。
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'
与问题有什么关系?
由于
答案 0 :(得分:4)
根据记录here,您需要向key-value
提供OrderedDict
对。
其核心OrderedDict
为dictionary
,因此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正在做的是尝试将其拆分为键值对。所以你得到了那个错误。