集合模块如何在Python中使用

  介绍

这期内容当中小编将会给大家带来有关集合模块如何在Python中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Python主要用来做什么

Python主要应用于:1,网络开发;2、数据科学研究;3,网络爬虫;4、嵌入式应用开发,5日游戏开发;6桌面应用开发。

柜台柜台()是字典对象的子类.Counter()可接收一个可迭代遍历的对象(例如字符串,列表或元组)作为参数,并返回计数器字典。字典的键将是可遍历对象中的唯一元素,每个键的值将是可迭代对象中的每个唯一元素对应的计数。

首先,让我们先从集合模块导入计数器这个数据类型:

得到collections  import 计数器

要创建计数器对象,就像将其分配给其他任何对象类一样,将其分配给变量。您唯一要确保的是传递给它的参数是可迭代的对象。

lst =, (1,, 2,, 3,, 3,, 2,, 1,, 1,, 1,, 2,, 2,, 3,, 1,, 2,, 1,, 1]   counter =,计数器(lst)

我们可以使用简单的打印功能比如打印(柜台)来查看我们获得的新的对象,它看起来像个字典,如下所示:

Conter  ({1:7, 2:2:5 3:3})

您可以使用键值关键访问任何计数器条目,如下所示。这与从标准Python字典中提取元素的方式完全相同。

lst =, (1,, 2,, 3,, 3,, 2,, 1,, 1,, 1,, 2,, 2,, 3,, 1,, 2,, 1,, 1]   时间=counter 计数器(lst)   柜台打印([1]),#,返回7.1的数量有7个

most_common()函数

到目前为止,计数器对象最有用的功能是most_common()函数。将其应用于计数器对象时,它将返回N个最常见元素及其计数的列表,按从最常见到最不常见的顺序排列。

lst =, (1,, 2,, 3,, 3,, 2,, 1,, 1,, 1,, 2,, 2,, 3,, 1,, 2,, 1,, 1]   时间=counter 计数器(lst)   打印(counter.most_common(2)), #,返回最常见两个元素及其计数

上面的代码打印出以下元组列表:

 [(7),(2、5)]

每个元组的第一个元素是列表中的唯一原始,每个元组的第二个元素是计数。这是一种快速简便的方法,实现比如“获取列表中最常见的3个元素及其计数”的功能。

要了解有关柜台功能的更多信息,请查阅官方文档。

defaultdict

defaultdict工作起来完全像一个普通的Python字典,但它有额外的奖励。当您试图访问一个不存在的键,它不会引发错误,而是使用不存在的键创建新的关键,其对应的默认值是根据创建defaultdict对象时作为参数传递的数据类型自动设置的。请看下面的代码作为示例。

得到collections  import  defaultdict      时间=names_dict  defaultdict (int)   names_dict [“Bob"],=, 1   names_dict [“Katie"],=, 2   时间=sara_number  names_dict (“Sara")   打印(names_dict)

在上面的示例中,int作为默认初始化值传递给我们的defaultdict对象。接下来,为每个键“Bob"和“Katie"赋值。但是在最后一行,我们尝试访问一个尚未定义的键,即“莎拉”的键。

在普通字典中,这将引发错误。使用defaultdict后不再报的错,而是自动以“Sara"创建一个新键键,其初始化值为0,是因为我们指定了int数据类型作为初始化值。

因此,最后一行打印出具有所有3个名称和相应值的字典。

defaultdict (& lt; class  & # 39; int # 39;祝辞,,{& # 39;鲍勃# 39;,,1,,& # 39;凯蒂# 39;,,2,,& # 39;莎拉# 39;:,0})

如果要将设置列表类型数据做为一个关键的初始化值,我们只需设置names_dict=defaultdict(列表),此时“莎拉”将使用空列表初始化[]。此时打印结果如下所示:

defaultdict (& lt; class  & # 39; int # 39;祝辞,,{& # 39;鲍勃# 39;,,1,,& # 39;凯蒂# 39;,,2,,& # 39;莎拉# 39;:,[]})

要了解有关defaultdict功能的更多信息,请查阅官方文档。

双端队列

双端队列队列是在计算机科学里最基本的数据结构,遵循先入先出(FIFO)的原理。简单来说,这意味着添加到队列中的第一个对象也必须是要删除的第一个对象。我们只能在队列的前面插入内容,而只能从队列的后面删除内容,而队列中间没有任何动作。

集合模块提供的双端队列对象是能实现队列数据结构的优化版本。该功能的主要特色是能够保持队列的大小,即如果将队列的最大长度设置为10,则将双端队列根据FIFO原理添加和删除元素以保持最大长度始终为10。这是到目前为止,Python中队列的最佳实现。

集合模块如何在Python中使用