这期内容当中小编将会给大家带来有关集合模块如何在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中队列的最佳实现。