【备战蓝桥杯】探索Python内置标准库collections的使用

news2024/11/25 11:48:08

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

🌈个人主页: Aileen_0v0
🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法
💫个人格言:“没有罗马,那就自己创造罗马~”

Our attitude toward life determineslife's attitude towards us.

文章目录

  • 标准库collections
    • Counter:计数器
    • Dequeue:双端队列
    • defaultdict:有默认值的字典
    • OrderedDict:有序字典

标准库collections

collections这个标准库中包含了很多的容器,这个库里面的工具是基于我们学过的容器如字典,元组扩展的。

Counter:计数器

Counter本身就是一个字典

无计数器的技术方法:

a = ["apple","banana","apple","cat","cat","cat","dog"]
b = {}
for x in a:
    b[x] = b.get(x,0) + 1
print(b)

运行结果:
在这里插入图片描述

用计数器的技术方法:

from collections import  Counter
a = ["apple","banana","apple","cat","cat","cat","dog"]
b =Counter(a)
print("type(b) = ",type(b))
print("b = ",b)

运行结果:
在这里插入图片描述
常见用法:

from collections import  Counter
a = Counter()               #空Counter
print(a)
a = Counter("Hello World")  #统计每个字符
print(a)
a = Counter([1,2,3,1,2])    #统计每个元素出现次数
print(a)

运行结果:
在这里插入图片描述
数学运算:

from collections import  Counter
c = Counter(a=3,b=1)
d = Counter(a=2,b=2)
print("c+d =",c+d)
print("c-d =",c-d)
print("c&d =",c&d) #与运算,取c和d的交集
print("c|d =",c|d) #并集

运行结果:
在这里插入图片描述

Dequeue:双端队列

大部分操作和list类似,但是删除和插入操作比list更高效
方法功能
append(x)添加x 到右端
appendleft(x)添加x到左端
pop()移去并且返回一个元素,deque 最右侧的那一个。
popleft()移去并且返回一个元素,deque 最左侧的那一个。
insert(i, x)在位置i插入X。
extend(iterable)扩展deque的右侧,通过添加iterable参数中的元素
extendleft(iterable)扩展deque的左侧,通过添加iterable参数中的元素。 注意,左添加时,在结果中iterable参数中的顺序将被反过来添加。
remove(value)移除找到的第一个 value。
clear()清空
copy()拷贝
count(x)计算deque中元素等于x的个数
index(x[,start[,stop]])返回x在deque中的位置(在索引start之后,索引stop之前)
reverse()将deque逆序排列。
rotate(n=1)向右循环移动n步。如果n是负数,就向左循环。
maxlenDeque的最大尺寸,如果没有限定就是None。
from collections import  deque
a = deque([1,2,3,4,1,4,2,4])
print("a = ",a)
#将整个列表向右挪一位
a.rotate(1)
print("a = ",a) #a =  deque([4, 1, 2, 3, 4, 1, 4, 2])
#将整个列表向左挪两位
a.rotate(-2) #a =  deque([4, 1, 2, 3, 4, 1, 4, 2])

defaultdict:有默认值的字典

from collections import defaultdict
s = [('yellow',1),('blue',2),('yellow',3),("blue",4),("red",1)]
d = defaultdict(list)
for k,v in s:
    d[k].append(v)

print(d)

运行结果:
在这里插入图片描述

OrderedDict:有序字典

from collections import OrderedDict
data = [("a",1),("b",2),("c",3)]
d = dict(data)
print(d)
while len(d) != 0:
    print("删除的元素为:",d.popitem())
    print("d = ",d)

在这里插入图片描述
](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1393738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高密数据中心卓越运维,更灵活助力企业 AI 就绪

AIGC的高速发展将企业对基础架构的需求推上了新的层次,根据中国通服数字基建产业研究院发布的《中国数据中心产业发展白皮书(2023)》报告,互联网行业客户对单机柜功率密度的要求较高,一般在6-8kW,金融行业处…

centos7 arm服务器编译安装gcc 8.2

前言 当前电脑的gcc版本为4.8.5,但是在编译其他依赖包的时候,出现各种奇怪的问题,会莫名其妙的中断编译。本地文章讲解如何自编译安装gcc,替换系统自带的gcc。 环境准备 gcc 需要 8.2:下载地址 开始编译 1、解压gcc…

Azure Machine Learning - 聊天机器人构建

目录 聊天机器人架构概述消耗成本环境准备打开开发环境部署和运行将聊天应用部署到 Azure使用聊天应用从 PDF 文件获取答案使用聊天应用设置更改答复行为 本文介绍如何部署和运行适用于 Python 的企业聊天应用示例。 此示例使用 Python、Azure OpenAI 服务和 Azure AI 搜索中的…

【记录】解决 git 仓库突然出现连接失败

问题描述 今天在 push 代码代码的时候突然发现无法 push(但是我可以正常打开 Gihub),这可不行,我可是 git 的重度使用者😍,我所有的代码都托管在了 Github 上,没有它我的日子怎么活啊!!&#x…

通讯录(C语言版)(静态通讯录)

✨欢迎来到脑子不好的小菜鸟的文章✨ 🎈创作不易,麻烦点点赞哦🎈 所属专栏:项目 我的主页:脑子不好的小菜鸟 文章特点:关键点和步骤讲解放在 代码相应位置 引言: 1.菜单 通讯录也如同游戏&…

【史上最全】前端页面深入浅出浏览器渲染原理

前言 浏览器的核心组件,即通常所说的浏览器内核,是支撑整个浏览器运行的关键性底层软件架构,它由两个关键组成部分构成:一个是负责网页内容解析和渲染的渲染引擎,另一个则是用于执行JavaScript代码的JS引擎。各浏览器厂…

汽车芯片「新变量」

编者按:汽车行业的格局重构和技术革新,也在推动芯片赛道进入变革周期。不同商业模式的博弈,持续升温。 对于智能汽车来说,过去几年经历了多轮硬件和软件的性能迭代,甚至是革新,如今,市场正在进…

阿里云国外云服务器多少钱?2024年最新价格

阿里云国外服务器优惠活动「全球云服务器精选特惠」,国外服务器租用价格24元一个月起,免备案适合搭建网站,部署独立站等业务场景,阿里云服务器网aliyunfuwuqi.com分享阿里云国外服务器优惠活动: 全球云服务器精选特惠…

DevExpress Web Report Designer中文教程 - 如何自定义控件和表达式注册?

获取DevExpress v23.2正式版下载(Q技术交流:909157416) 自定义控件集成 DevExpress Reports中的自定义报表控件注册变得更加容易,为了满足web开发人员的需求,DevExpressv23.1包括简化的自定义控件注册支持(在服务器级别实现)。如…

时序分解 | Matlab实现CEEMDAN+PE自适应噪声完备集合经验模态分解+排列熵计算

时序分解 | Matlab实现CEEMDANPE自适应噪声完备集合经验模态分解排列熵计算 目录 时序分解 | Matlab实现CEEMDANPE自适应噪声完备集合经验模态分解排列熵计算效果一览基本介绍程序设计参考资料 效果一览 基本介绍 CEEMDANPE自适应噪声完备集合经验模态分解排列熵计算 运行环境m…

Spring Boot 整合 Camunda 实现工作流

工作流是我们开发企业应用几乎必备的一项功能,工作流引擎发展至今已经有非常多的产品。最近正好在接触Camunda,所以来做个简单的入门整合介绍。如果您也刚好在调研或者刚开始计划接入,希望本文对您有所帮助。如果您是一名Java开发或Spring框架…

echarts格式化X,Y轴坐标的值(格式单位)

现在一个需求要求将y轴数据切换为万单位 加入一下代码 yAxis: {type: "value",axisLabel: {formatter: function (value, index) {return value > 10000 ? parseInt(value / 10000) "万" : value;},},}, 效果如下 其中,axisLabel支持两种…

面试题 05.06. 整数转换(力扣)(OJ题)

题目链接:面试题 05.06. 整数转换 - 力扣(LeetCode) 所属专栏:刷题 整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。 示例1: 输入:A 29 (或者0b11101), B 15…

Spring Web文件上传功能简述

文章目录 正文简单文件上传文件写入 总结 正文 在日常项目开发过程中,文件上传是一个非常常见的功能,当然正规项目都有专门的文件服务器保存上传的文件,实际只需要保存文件路径链接到数据库中即可,但在小型项目中可能没有专门的文…

【控制篇 / 分流】(7.4) ❀ 03. 对国内和国际IP网段访问进行分流 ❀ FortiGate 防火墙

【简介】公司有两条宽带用来上网,一条电信,一条IPLS国际专线,由于IPLS仅有2M,且价格昂贵,领导要求,访问国内IP走电信,国际IP走IPLS,那么应该怎么做? 国内IP地址组 我们已…

Pytorch各种Dropout层应用于详解

目录 torch框架Dropout functions详解 dropout 用途 用法 使用技巧 参数 数学理论公式 代码示例 alpha_dropout 用途 用法 使用技巧 参数 数学理论公式 代码示例 feature_alpha_dropout 用途 用法 使用技巧 参数 数学理论 代码示例 dropout1d 用途 用…

echarts X轴数据过多导致重叠展示不全问题(已解决)

问题 x轴数据过多导致坐标轴数据重叠 修改后 List item interval为0代表每个标签都显示,即间隔为0! 将其设置为我们想要的数值即可。 xAxis: {type: "time",splitLine: {show: false,},axisLine: {show: false,lineStyle: {color: &qu…

正则表达式中的“回引用(回溯)”——别名引用与序号引用的差异及正则表达式中的“P”关键字

读到一段巧妙的正则表达式,勾起我对正则表达式欠缺知识点的探寻: P y t h o n Python Python正则表达式中的“回引用(回溯)”——分组别名引用与序号引用的差异及正则表达式中的“P”关键字详情。 (笔记模板由python脚本于2024年01月14日 07:49:35创建&a…

RT-Thread Studio学习(十四)ADC

RT-Thread Studio学习(十四)ADC 一、简介二、新建RT-Thread项目并使用外部时钟三、启用ADC四、测试 一、简介 本文将基于STM32F407VET芯片介绍如何在RT-Thread Studio开发环境下使用ADC设备。硬件及开发环境如下: OS WIN10STM32F407VET6STM…