Python:dict中列表的简单迭代

时间:2011-10-22 21:13:34

标签: python

我有这个简单的结构:

o = {
    2: [0, 148, 149, 150, 151],
    3: [0, 152, 153, 154, 155, 156],
    4: [0, 157, 158, 159, 160],
    5: [0, 161, 162, 163, 164, 165, 166]
}

......我很难尝试隔离列表中的每个数字(例如0,148,149)

如果我做了任何一种循环,我得到:

TypeError: 'int' object is not iterable

我需要做什么?

谢谢!

BTW Python 2.6

2 个答案:

答案 0 :(得分:3)

下次,请显示失败的代码。

我猜你会做类似的事情:

for x in o:
   for y in x:
       print y

问题在于,如果迭代o,则得到的键不是值。你想要的是:

   for key, value in o.items():
       for v in value:
           print v

Items返回键和值的列表作为元组,您可以迭代它。

答案 1 :(得分:2)

for循环遍历键,然后您可以使用它来查找相应的序列:

>>> o = {
    2: [0, 148, 149, 150, 151],
    3: [0, 152, 153, 154, 155, 156],
    4: [0, 157, 158, 159, 160],
    5: [0, 161, 162, 163, 164, 165, 166]
}
>>> for key in o:
        seq = o[key]
        print key
        print seq
        print


2
[0, 148, 149, 150, 151]

3
[0, 152, 153, 154, 155, 156]

4
[0, 157, 158, 159, 160]

5
[0, 161, 162, 163, 164, 165, 166]