2014-03-01 55 views
0

字典如何循環字典上半年將蟒蛇遍歷上半年蟒蛇

這種迭代的所有值在字典中

for key, value in checkbox_dict.iteritems(): 
    print key,value 

但我想遍歷上半年只有字典。

一個辦法就是做這樣

for key, value in dict(checkbox_dict.items()[:11]).iteritems(): 
    print key,value 

有沒有什麼更好的辦法也?

+0

你是什麼意思半字典?你能用一個例子來澄清嗎? – thefourtheye

+2

你想迭代哪一半? –

+2

請記住,詞典是**無序**。 – Christian

回答

2

您可以使用itertools.islice切片dict.iteritems迭代器,不像dict.items()切片這不會在內存中創建中間列表。

>>> from itertools import islice 
>>> d = dict.fromkeys('abcdefgh') 
>>> for k, v in islice(d.iteritems(), len(d)/2): 
    print k, v 
...  
a None 
c None 
b None 
e None 

請注意,普通字典是無序的,所以項目以任意順序返回。

2

如果你的意思是:在這裏項目的一半一種方法:

for key, value in checkbox_dict.items()[:int(len(checkbox_dict)/2)]: 
    pass 

,但請注意:在正常的字典中的元素並不一定記住這是用於同一迭代順序插入元素...除非你使用OrderedDict