以相反的顺序遍历字典 (Python)

新手上路,请多包涵

我知道在遍历字典时,它会以任意顺序排列。但是,我需要确保最后访问一个特定项目,并且该项目恰好具有最小的密钥。我应该如何实施?

现在,我有

files["h"] = DIRECTORY["h"][0]
files["n"] = DIRECTORY["n"][0]
files["a"] = DIRECTORY["a"][0]

for key, file_dir in files.iteritems():
    print ("Checking {0} in {1}".format(key, file_dir))
    # process files

字典恰好按“a”、“h”、“n”的顺序迭代。我需要最后处理“a”,因为它依赖于“h”和“n”中的文件。

有没有办法在不运行 process files 代码的情况下执行此操作两次,一次用于“h”和“n”,另一次用于“a”?

原文由 Rayne 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 304
1 个回答

只需在迭代列表之前对列表进行排序。

 for key, file_dir in sorted(files.iteritems(), key=lambda x:x[0].lower, reverse=True):
    print ("Checking {0} in {1}".format(key, file_dir))

对于 python 3,因为 iteritems() 被删除了。

 files = {"d":2, "g":1, "a":3, "b":3, "t":2}
print(files.items())
for key, file_dir in sorted(list(files.items()), key=lambda x:x[0].lower(), reverse=True):
    print ("Checking {0} in {1}".format(key, file_dir))

原文由 mattsap 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏