在有序字典中检查最后的x元素?

2024-10-02 12:22:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想浏览一个有序字典中最近添加的x个条目。到目前为止,我唯一能想到的是:

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

但是,当有序词典应该已经知道它的顺序时,再列出一个列表并用该列表浏览有序词典,感觉是多余的,而且有些浪费。有别的办法吗?谢谢!你知道吗


Tags: keyin列表for字典顺序with条目
3条回答

反向迭代dict并应用itertools.islice

from itertools import islice

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

您可以使用reversed()以相反的顺序遍历它,而不是像现在这样反转它。示例:

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

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

你可以保留上次运行的字典中存在的键的列表。你知道吗

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

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)

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

相关问题 更多 >

    热门问题