我有一个字典,每个键都包含一个列表作为值。而且我正在尝试查看列表中的所有项目,让我们说我正在尝试打印所有项目,我写道:
for item in aDict:
for item2 in aDict[item]:
print item2
这会打印出列表中第一个值的项目,然后它会给出一个错误,说“迭代非序列”。为什么这样,我该怎么做?
提前致谢。
答案 0 :(得分:7)
您的一个字典值不是列表!
答案 1 :(得分:5)
我假设aDict
中的其中一项不是sequence,字符串,列表,元组等:
>>> aDict = { 'a' : [1, 2, 3,], 'b' : [4, 5, 6,], 'c' : [7, 8, 9,] }
>>> for item in aDict:
... for item2 in aDict[item]:
... print item2
...
1
2
3
7
8
9
4
5
6
>>>
答案 2 :(得分:0)
执行此操作时:
for item in aDict:
for item2 in aDict[item]:
print item2
你的说法,对于字典中的每个item
,循环遍历字典中的item
索引,这没有任何意义。
您真正想要做的是为每个item
循环播放该特定项目,例如:
for item in aDict:
for item2 in item:
print item2
或使用更好的术语:
for dictIndex in aDict:
for item in dictIndex:
print item
答案 3 :(得分:0)
aDict[item]
意味着您需要dict的值,而不是键?在这种情况下,.itervalues()
或.iteritems()
应该比默认迭代更自然(仅限于键)。
for key, value in aDict.iteritems():
for subvalue in value:
pass
错误指向(至少有一个)您的值不可迭代。