Python 有序字典

Python标准库是一组模块,安装的Python都包含它。你现在对类的工作原理已有大致的了解,可以开始使用其他程序员编写好的模块了。可使用标准库中的任何函数和类,为此只需在程序开头包含一条简单的import语句。下面来看模块collections中的一个类——OrderedDict

字典让你能够将信息关联起来,但它们不记录你添加键—值对的顺序。要创建字典并记录其中的键—值对的添加顺序,可使用模块collections中的OrderedDict类。OrderedDict实例的行为几乎与字典相同,区别只在于记录了键—值对的添加顺序。

我们再来看一看酷客网Python 字典的favorite_languages.py示例,但这次将记录被调查者参与调查的顺序:

from collections import OrderedDict
favorite_languages = OrderedDict()
favorite_languages['jen'] = 'python'
favorite_languages['sarah'] = 'c'
favorite_languages['edward'] = 'ruby'
favorite_languages['coolcou'] = 'python'
for name, language in favorite_languages.items():
    print(name.title() + "'s favorite language is " + language.title() + ".")

我们首先从模块collections中导入了OrderedDict类。我们创建了OrderedDict类的一个实例,并将其存储到favorite_languages中。请注意,这里没有使用花括号,而是调用OrderedDict()来创建一个空的有序字典,并将其存储在favorite_languages中。接下来,我们以每次一对的方式添加名字—语言对。我们遍历favorite_languages,但知道将以添加的顺序获取调查结果:

Jen's favorite language is Python.
Sarah's favorite language is C.
Edward's favorite language is Ruby.
Coolcou's favorite language is Python.

这是一个很不错的类,它兼具列表和字典的主要优点(在将信息关联起来的同时保留原来的顺序)。等你开始对关心的现实情形建模时,可能会发现有序字典正好能够满足需求。随着你对标准库的了解越来越深入,将熟悉大量可帮助你处理常见情形的模块。

赞(0)

评论 抢沙发

评论前必须登录!