超有用的集合类collections,不来了解一下?

简介: 超有用的集合类collections,不来了解一下?

一、Counter


这是一个计数器,我们可以用来方便的统计出一些元素出现的次数,比如String、List、Tuples等等。


String


from collections import Counter
c = Counter("HelloKitty")
print(c)
#运行结果:
Counter({'l': 2, 't': 2, 'H': 1, 'e': 1, 'o': 1, 'K': 1, 'i': 1, 'y': 1})


List


from collections import Counter
c = Counter(["苹果", "樱桃", 1, 1, 4, 4, 5])
print(c)
#运行结果:
Counter({1: 2, 4: 2, '苹果': 1, '樱桃': 1, 5: 1})


二、deque


我们很喜欢用list来存放数据,因为非常的方便。但是list的缺点也很明显,如果你是按索引访问元素就很快,但是插入和删除元素就很慢。


当然了,数据量小的时候肯定是感知不到的,只有当数据量大的时候,你才会发现这个缺点,因为list是线性数据结构,比如插入这个动作,需要把它后面的元素都挪一位。


deque除了实现list的append()和pop()外,还提供了appendleft()和popleft(),这样的话我们可以很方便的向着列表的另一头,进行添加和移除操作了。


from collections import deque
deque_list = deque(['a', 'b', 'c', 'd'])
deque_list.append('苹果')
deque_list.appendleft('吃')
print(deque_list)
#运行结果:
deque(['吃', 'a', 'b', 'c', 'd', '苹果'])


三、OrderedDict


使用Python,大家自然知道Dict字典中的key是无序的。那如果你想要保持key的顺序的话,用OrderedDict即可。


from collections import OrderedDict
list_a = [(1, "苹果"), (2, "香蕉"), (3, "西瓜"), (4, "芒果")]
order_dict = OrderedDict(list_a)
print(order_dict)
#运行结果:
D:\Daily
λ python whatiscollections.py
OrderedDict([(1, '苹果'), (2, '香蕉'), (3, '西瓜'), (4, '芒果')])


如果有场景中需要使用到,可以试试这几种用法。

相关文章
|
2天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
4天前
|
云安全 数据采集 人工智能
古茗联名引爆全网,阿里云三层防护助力对抗黑产
阿里云三层校验+风险识别,为古茗每一杯奶茶保驾护航!
古茗联名引爆全网,阿里云三层防护助力对抗黑产
|
4天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
533 2
kde
|
4天前
|
人工智能 关系型数据库 PostgreSQL
n8n Docker 部署手册
n8n是一款开源工作流自动化平台,支持低代码与可编程模式,集成400+服务节点,原生支持AI与API连接,可自托管部署,助力团队构建安全高效的自动化流程。
kde
362 3
|
2天前
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
747 4
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
|
3天前
|
JavaScript 开发工具 Android开发
如何在原生 App 中调用 Uniapp 的页面?
如何在原生 App 中调用 Uniapp 的页面?
243 138
|
4天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践
本文介绍RAG(检索增强生成)技术,结合Spring AI与本地及云知识库实现学术分析AI应用,利用阿里云Qwen-Plus模型提升回答准确性与可信度。
254 91
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践