2024-06-09 00:09:52 发布
网友
在脚本中,我有一个OrderedDictgroups,它按字母顺序获取fed键/值对。
groups
在脚本的另一部分中,我将检查与key相同的文件,如下所示:
key
for (key, value) in groups.items(): file = open(key, 'r') # do stuff
事情发生得很好,其中一部分是为每个文件打印一个状态行,但是我如何让Python按字母顺序遍历groups,或者至少按顺序按数字遍历(因为它们无论如何都是按字母顺序输入的)?
如果您只想按键的顺序遍历字典,则可以使用常规字典和sorted():
sorted()
>>> d = dict(s=5,g=4,a=6,j=10) >>> d {'g': 4, 's': 5, 'j': 10, 'a': 6} >>> for k in sorted(d): print(k, ':', d[k]) a : 6 g : 4 j : 10 s : 5 >>>
(请原谅Python)
如果您真的想坚持使用有序dict,那么请阅读documentation,其中显示了重新排序OrderedDict的示例:
OrderedDict
>>> # regular unsorted dictionary >>> d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2} >>> # dictionary sorted by key >>> OrderedDict(sorted(d.items(), key=lambda t: t[0])) OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
如果你真的把它们按字母顺序输入到一个OrderedDict中,那么我不知道你为什么有麻烦。
一个OrderedDict的要点是,您可以按照输入键的顺序正常地遍历它:
>>> from collections import OrderedDict >>> d = OrderedDict() >>> d[1] = 2 >>> d[0] = 3 >>> d[9] = 2 >>> for k, v in d.items(): print(k, v) (1, 2) (0, 3) (9, 2)
只需确保不给OrderedDict(...)字典提供初始化它的信息,否则它会无序启动。
OrderedDict(...)
如果您只想按键的顺序遍历字典,则可以使用常规字典和
sorted()
:(请原谅Python)
如果您真的想坚持使用有序dict,那么请阅读documentation,其中显示了重新排序
OrderedDict
的示例:如果你真的把它们按字母顺序输入到一个
OrderedDict
中,那么我不知道你为什么有麻烦。一个
OrderedDict
的要点是,您可以按照输入键的顺序正常地遍历它:只需确保不给
OrderedDict(...)
字典提供初始化它的信息,否则它会无序启动。相关问题 更多 >
编程相关推荐