数据结构与算法

Posted Python编程和AI科学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构与算法相关的知识,希望对你有一定的参考价值。

1.11将一个字典根据字段记录分组,并根据某个特定的字段来分组迭代数据。简单的解决办法是使用itertools模块里的groupby()函数达到目的,详细使用方式如下:

输出结果如下:

数据结构与算法(五)

先是对列表字典按关键字排序,用到了前一节说的itemgetter函数,这个函数返回的是一个可调用的对象,之后再经过groupby函数,这个函数扫描序列找出拥有相同的值(或是由key参数指定的函数所返回的值,)并根据这个字段分组,groupby创建的是一个迭代器,每次迭代时都会返回一个值,和一个子迭代器,这个子迭代器可以产生所有在该分组内具有该值的项(原文)。但groupby函数只能检查连续的项,所以这个例子是先排序。所以有一个函数defaultdict函数可以直接使用。

数据结构与算法(五)

运行结果如下:

数据结构与算法(五)

1.11将名称映射到一个序列中,以方便通过名称来访问序列值,也叫命名元组。详细代码如下:

数据结构与算法(五)

运行结果如下:

数据结构与算法(五)

其实namedtuple是一个工厂方法,也就是说可以产生无数个命名元组。它返回的是一个新的被命名字段的子类,看如下例子:

sub就是一个被namedtuple类实例化的对象,可以产生无数个实例对象,而且可以方便访问其中的元素,第一个参数是返回的子类名称,后面则是实例化后的数据项,而且命名元组的特性跟内置元组一样是支持索引,超界引起异常等,如下:

命名元组的应用主要是将代码同它所控制的代码的元素位置之间解耦,其具体的使用的方式在后面的数据编码与处理章节还有更实用的例子。

以上是关于数据结构与算法的主要内容,如果未能解决你的问题,请参考以下文章

Golang数据结构与算法全能战士

数据结构与算法—算法与算法分析

python 数据结构与算法之排序(冒泡,选择,插入)

计算机常用英语词汇 —— 数据结构与算法

数据结构与算法(中文版) PDF 完整版下载

算法入门《数据结构与算法图解》+《我的第一本算法书》+《学习JavaScript数据结构与算法第3版》