四种高性能数据类型,Python collections助你优化代码、简洁任务
副标题[/!--empirenews.page--]
在这篇文章中,机器学习工程师 George Seif 介绍了 Python collections 模块非常受欢迎的四种数据类型以及它们各自的使用方法。这些数据类型可以对代码进行优化,进而实现更简洁的任务执行。 一般而言,Python 中的 collections 模块是用于存储列表、字典、元组以及集等数据集合的容器。这些容器嵌入在 Python 中,可以实现开箱即用。collections 模块提供了额外的高性能数据类型,它们可以优化代码,让一些任务变得更加简洁。 本文作者 George Seif(机器学习工程师)。 Counter官方文档:https://docs.python.org/2/library/collections.html#collections.Counter Counter 是 dictionary 对象的子类。collections 模块中的 Counter() 函数会接收一个诸如 list 或 tuple 的迭代器,然后返回一个 Counter dictionary。这个 dictionary 的键是该迭代器中的唯一元素,每个键的值是迭代器元素的计数。 首先,我们需要从 collections 包中导入 Counter:
如果要创建一个 Counter 对象,我们也要像对待其他对象类一样,先将它分配给一个变量,而传递给 Counter 对象的惟一变量即是迭代器。
如果我们使用简单的 print 函数(print(counter))把这个 Counter 打印出来,则会得到一些与 dictionary 稍微类似的输出:
你可以用这些键值访问任何 Counter 项。这与从标准的 Python dictionary 中获取元素的方法完全相同。
目前来说,Counter 对象中最有用的函数是 most_common()。当它应用于一个 Counter 对象时,会返回一个 list,这个 list 包含了前 N 个常见的元素及其计数,它们按照常见度降序排列。
上述代码会打印出以下 tuples 的 list。
每个 tuple 的首个元素是 list 中的唯一项,第二个元素是计数值。对于「获取 list 中前 3 常见的元素及其计数」这样的问题,这会是一种快速且简单的方法。 如果要了解更多关于 Counter 的功能,可以查看官方文档。 defaultdict官方文档:https://docs.python.org/2/library/collections.html#collections.defaultdict defaultdict 的工作方式和平常的 python dictionary 完全相同,只是当你试图访问一个不存在的键时,它不会报错,而是会使用默认值初始化这个键。默认值是根据在创建 defaultdict 对象时作为参数输入的数据类型自动设置的。下面的代码就是一个例子。 相反,它会使用默认值初始化这个键。默认值是根据在创建 defaultdict 对象时作为参数输入的数据类型自动设置的。下面的代码就是一个例子。
在上面的示例中,传递给 defaultdict 对象的默认值是 int。然后每个键得到了一个值,也就是「Bob」和「Katie」各获得了一个数字。但是在最后一行,我们试着访问了一个尚未定义的键,即「Sara」。 在普通 dictionary 中,这种操作会报错。但是使用 defaultdict 时,将自动为「Sara」初始化一个新键,其值 0 对应于我们的 int 数据类型。因此,最后一行可以把这「Bob」、「Katie」和「Sara」以及对应的值都打印出来。
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |