迭代上半部分python中的字典

时间:2014-03-01 04:53:51

标签: python dictionary

如何在python

中迭代字典的前半部分

这会迭代字典中的所有值

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

但我只想迭代字典的前半部分。

一种方法就是这样做

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

还有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

如果你的意思是:超过一半的项目就是这样的:

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

...但请注意:普通字典中的元素不一定保持用于插入元素的迭代顺序...除非您使用OrderedDict

答案 1 :(得分:2)

您可以使用itertools.islicedict.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

请注意,普通字典是无序的,因此以任意顺序返回项目。