如何在python
中迭代字典的前半部分这会迭代字典中的所有值
for key, value in checkbox_dict.iteritems():
print key,value
但我只想迭代字典的前半部分。
一种方法就是这样做
for key, value in dict(checkbox_dict.items()[:11]).iteritems():
print key,value
还有更好的方法吗?
答案 0 :(得分:2)
如果你的意思是:超过一半的项目就是这样的:
for key, value in checkbox_dict.items()[:int(len(checkbox_dict)/2)]:
pass
...但请注意:普通字典中的元素不一定保持用于插入元素的迭代顺序...除非您使用OrderedDict
。
答案 1 :(得分: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
请注意,普通字典是无序的,因此以任意顺序返回项目。