浏览有序字典中的最后x个元素?

时间:2014-07-24 13:07:29

标签: python dictionary

我想查看最近添加的有序字典的x个数字。到目前为止,我能想到的唯一方法是:

listLastKeys = orderedDict.keys()[-x:]
for key in listLastKeys:
    #do stuff with orderedDict[key]

但是当有序词典已经知道它的顺序时,制作另一个列表并通过有序词典时,感觉多余而且有些浪费。是否有其他方法?谢谢!

3 个答案:

答案 0 :(得分:5)

反向迭代dict并应用itertools.islice

from itertools import islice

for key in islice(reversed(your_ordered_dict), 5):
    # do something with last 5 keys

答案 1 :(得分:0)

不是像你一样反转它,而是可以使用reversed()以相反的顺序循环它。例如:

D = {0 : 'h', 1: 'i', 2:'j'}

x = 1
for key in reversed(D.keys()):
    if x == key:
        break

答案 2 :(得分:0)

您可以保留上次运行的字典中存在的键列表。

我不知道程序的确切语义,但这是一个检查新密钥的函数。

keys=[] #this list should be global

def checkNewKeys(myDict):
    for key, item in myDict.iteritems():
        if key not in keys:
            #do what you want with new keys
            keys.append(key)

这基本上可以跟踪整个程序运行中字典中的内容,而无需每次都创建新列表。