import collections
# https://www.cnblogs.com/lwp-king666/p/8331508.html
import time
print(time.ctime())
print('hello Jupyter!')
Sat May 8 09:17:53 2021
hello Jupyter!
# 一、Counter统计元素的个数,并以字典形式返回{元素:元素个数}
str1="aaabbcccdff"
c1 = collections.Counter(str1)
print("c1",c1)
# 1. most_common:将元素出现的次数按照从高到低进行排序,并返回前N个元素,
# 若多个元素统计数相同,按照字母顺序排列,N若未指定,则返回所有元素
c2 = c1.most_common(3)
print("c2",c2)
c1 Counter({'a': 3, 'c': 3, 'b': 2, 'f': 2, 'd': 1})
c2 [('a', 3), ('c', 3), ('b', 2)]
# 2.elements:返回一个迭代器,元素被重复多少次,在迭代器中就包含多少个此元素,
# 所有元素按字母序排列,个数<1的不罗列
c2 = collections.Counter(a=2,b=1,c=3,d=1)
c3 = list(c2.elements())
print(c3)
['a', 'a', 'b', 'c', 'c', 'c', 'd']
# 3. update:增加元素的重复次数,update本身是没有返回值,只能赋值给其他变量
c1.update("a")
print(c1)
Counter({'a': 7, 'c': 3, 'b': 2, 'f': 2, 'd': 1})
# 4.subtract:减少元素重复次数,跟update相反
c1.subtract("a")
print(c1)
Counter({'a': 5, 'c': 3, 'b': 2, 'f': 2, 'd': 1})
# 二、orderedDict有序字典,继承了dict的所有功能,dict是无序的,
# orderedDict刚好对dict作了补充,记录了键值对插入的顺序,是有序字典
dic = collections.OrderedDict({"name":"tom","age":18,"sex":"man"})
print(dic)
OrderedDict([('name', 'tom'), ('age', 18), ('sex', 'man')])
# 1.清空字典
dic.clear()
print(dic)
OrderedDict()
# 2. popitem:有序删除,类似于栈,按照后进先出的顺序依次删除,last是bool值,默认True
# dic.popitem(last=False)
dic.popitem(last=True)
print(dic)
OrderedDict([('name', 'tom'), ('age', 18)])
# 3.pop:删除指定键值对
dic.pop(key="name")
print(dic)
OrderedDict([('age', 18), ('sex', 'man')])
# 4. move_to_end:将指定键值对移到最后位置,可以用last指定前后
dic.move_to_end(key="sex",last=True)
print(dic)
OrderedDict([('name', 'tom'), ('age', 18), ('sex', 'man')])
# 5. setdefault:设置默认值,默认为None,也可指定值
dic.setdefault("score",80)
print(dic)
OrderedDict([('name', 'tom'), ('age', 18), ('sex', 'man'), ('score', 80)])
# 6. update:更新字典,有则更新,无则添加
dic.update({"score":90})
print(dic)
OrderedDict([('name', 'tom'), ('age', 18), ('sex', 'man'), ('score', 90)])
# 三、默认字典(defaultdict):设置values默认类型,如list、tuple
dic1=collections.defaultdict(list)
dic1["course"].append("En")
dic1["course"].append("Cn")
print(dic1)
defaultdict(<class 'list'>, {'course': ['En', 'Cn']})
# 四、可命名元组(namedtuple): 可通过名称访问元组中的元素,提高代码可读性
TupleName=collections.namedtuple('TupleName',['a','b','c']) #通过namedtuple自定义一个TupleName类
obj=TupleName(11,22,33) # 通过类创建对象obj
print(obj.a) # 通过名称访问元组中的元素
print(obj.b)
print(obj.a * obj.c)# 通过名称访问元组中的元素并进行计算
11
22
363
# 五、双向队列(deque):类似于list,允许两端操作元素,
deq=collections.deque('abcd')
print(deq)
deque(['a', 'b', 'c', 'd'])
# 1. append:从队列右侧添加元素
deq.append(11)
print(deq)
deque(['a', 'b', 'c', 'd', 11])
# 2.appendleft:从队列左侧添加元素
deq.appendleft(12)
# 3.clear:清空队列
deq.clear()
# 4. count:统计队列中元素个数
num = deq.count('a')
print(num)
1
# 5.extend:从队列右侧扩展
deq.extend([22,33])
print(deq)
deque([12, 'a', 'b', 'c', 'd', 11, 22, 33])
# 6.extendleft:从队列左侧扩展
deq.extendleft({'k1':'v1','k2':'v2'}) # 扩展类型为dict,取keys
print(deq)
deque(['k2', 'k1', 12, 'a', 'b', 'c', 'd', 11, 22, 33])
# 7.index:取元素索引位置
deq.index("k1")
1
# 8.insert:在队列任意位置插入值
deq.insert(1,11)
print(deq)
deque(['k2', 11, 'k1', 12, 'a', 'b', 'c', 'd', 11, 22, 33])
# 9. pop:从队列右侧移除值
deq.pop()
# 10.popleft:从队列左侧移除值
deq.popleft()
# 11. remove:移除指定值
deq.remove('k2')
# 12.reverse:将队列中的元素反转
deq.reverse()
print(deq)
deque([33, 22, 11, 'd', 'c', 'b', 'a', 12, 'k1', 11, 'k2'])
# 13. rotate:移动队列中的元素,若n<0,则将队列最左侧的元素依次移动至最右侧,反之,n>0,将队列最右侧元素移动至最左侧
deq.rotate(-2)
print(deq)
deque([11, 'd', 'c', 'b', 'a', 12, 'k1', 11, 'k2', 33, 22])
相关推荐
S7-1500与WinCC GroupDisplay组显示的高效配置指南
本文详细介绍了S7-1500 PLC与WinCC GroupDisplay组显示功能的高效配置方法,涵盖报警状态配置、WinCC端组显示控件设置及常见问题排查。通过实战案例和优化建议,帮助工程师快速掌握工业自动化项目中报警信息可视化的关键技术,提升生产线监控效率。
Collection集合容器基础讲解
1.简介 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。 2.图解 即:...
基于 Python Flask 的智能个人财务系统
4.财务分析与报告:自动生成财务分析报告,提供图表展示(如饼图、柱状图)帮助用户了解收支状况和财务趋势。9.管理员管理功能:提供管理员模块,允许管理员查看用户财务数据、生成统计报告,并进行用户管理与权限控制。5.资产管理:用户可以记录并追踪个人资产(如房产、车辆、投资等),系统提供资产价值增减情况和趋势分析。3.预算制定与管理:用户根据收入设定每月预算,系统自动对比实际支出与预算差异,实时提醒预算完成情况。6.信用卡管理:提供信用卡账单记录与管理功能,提醒用户信用卡还款日期,避免逾期,帮助管理信用卡消费。
MyBatis之association和collection标签
一般情况下一对一使用标签,一对多使用标签。
Unity 升级引擎版本后构建报错:script class layout is incompatible between the editor and the player
Unity升级引擎版本后,项目报错:script class layout is incompatible between the editor and the player。
【技术笔记】Cadence实现Orcad与Allegro软件交互式布局设置
为了达到原理图和PCB两两交互的功能,需要在ORCAD中将允许交互进行勾选,这样才可以,执行菜单命令Options-Preference后,我们打开参数界面,进行选择Miscellaneous菜单,将交互模式进行勾选。在做硬件pcb设计的时候,原理图选中一个元器件,希望可以再PCB中可以直接选中。对于网表必须是导入第一方网表,第三方是无效的。在allegro中使能/关闭交互式布局功能。
Java之Collections常用功能和可变参数
1、Collections概述: java.utils.Collections 是一个集合工具类,用来对集合进行操作 2、Collections常用功能: public static void shuffle(List<?> list) 打乱集合的顺序 // 创建List集合,限制集合中元素的类型为Integer类型 List<Integer> list = new ArrayList<>(); // 往集合中添加元素 list...
Gemini-CLI 登录失败?解决报错 This account requires setting the GOOGLE_CLOUD_PROJECT env var 的问题
🚀 刚装好 `gemini-cli` 就遇到登录拦路虎?别慌!本文带你深入解析 `GOOGLE_CLOUD_PROJECT` 环境变量错误的根源,并提供超详细的图文解决方案,让你丝滑开启 AI 命令行之旅!快来抄作业!✍️
Collection集合输出
List,Set,Vector:都一样(Vector多一个Enumeration)List<String> list = new ArrayList<String>();/ Vector<String> list = new Vector<String>(); list.add("A"); list.add("B"); list.add("
AI在生物学领域的应用:基因序列分析和人工智能生物学
好的,非常感谢您提供的这个精彩的主题和详细的要求。我会全力以赴,遵循您的要求写一篇内容丰富、结构清晰、论述深入的专业技术文章。现在,就让我们开始这篇关于"AI在生物学领域的应用:基因序列分析和人工智能生物学"的博客文章吧! 1. 背景介绍 1.1 生物信息学的兴起
[解决] PDF转图片,中文乱码或显示方框的解决方案
在Java开发中,将PDF文件转换为图片是一项常见的需求,但过程中可能会遇到中文乱码或显示方框的问题。本文将深入探讨这一问题,并提供详细的解决方案,帮助开发者顺利地完成PDF到图片的转换。
Collection集合的总结与可变参数
2.由于增强for循环遍历集合就是迭代器遍历集合的简化写法,因此,使用增强for循环遍历集合,又同时删除集合中的数据时,程序也会出现并发修改异常的错误。一:就是一种特殊形参,定义在方法,构造器的形参列表里,格式是:数据类型...参数名称;1.使用迭代器遍历集合时,又同时在删除集合中的数据,程序就会出现并发修改异常的错误。1.希望记住元素的添加顺序,需要存储重复的元素,又要频繁的根据索引查询数据推荐使用。HashSet集合(无序,不重复,无索引),底层基于哈希表实现的。:一个形参列表中,只能有一个可变参数。
【DRAM存储器六十五】DDR5介绍--训练相关之MPC、Read Training Pattern、Read Preamble Training Mode
简述DDR5 MPC操作和读训练时颗粒输出pattern的配置
Python中 collections模块的详细用法介绍
1. 介绍 collections是Python内建的一个集合模块,提供了许多有用的集合类和方法。 可以把它理解为一个容器,里面提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择。 import collections print(dir(collections)) # ['ChainMap', 'Counter', 'Mapping', 'MutableMapping', 'OrderedDict', 'UserDict', 'UserList', 'Use
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
Java中Collections类详细用法
1、sort(Collection)方法的使用(含义:对集合进行排序)。 例:对已知集合c进行排序? public class Practice { public static void main(String[] args){ List c = new ArrayList(); ...
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
【collections库】collections库的使用,详细
Python 的库提供了丰富的工具,可以帮助我们更加高效和灵活地操作数据结构,特别是在处理需要计数、默认值、双端队列、命名元组等特殊需求时。通过合理使用这些工具,我们可以显著提高代码的可读性和性能。
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
java collections 用法_Java中Collections类详细用法
1、sort(Collection)方法的使用(含义:对集合进行排序)。例:对已知集合c进行排序?public class Practice {public static void main(String[] args){List c = new ArrayList();c.add("l");c.add("o");c.add("v");c.add("e");System.out.println(c...
Java可变参数和集合工具类Collections的详细介绍
System.out.println("元素的内容: " + Arrays.toString(nums));shuffle方法, 只能打乱List集合的数据, Set集合的顺序无法打乱;System.out.println("元素的内容: " + Arrays.toString(nums));System.out.println("元素的个数: " + nums.length);System.out.println("元素的个数: " + nums.length);// 可以传任意数量的参数。
python中collections_python标准库之collections介绍
collections----容器数据类型collections模块包含了除list、dict、和tuple之外的容器数据类型,如counter、defaultdict、deque、namedtuple、orderdict,下面将一一介绍。Counter初始化:Counter 支持三种形式的初始化。它的构造函数可以调用序列,一个字典包含密钥和计数,或使用关键字参数映射的字符串名称。importco...
【Java入坑之路】关于Collections.binarySearch查找结果不符合预期的探究
目录 前言 正文 总结 前言 今天学习到辅助工具类Collections的使用(注意Collection和Collections的区别,前者是一个接口,后者是一个工具类,可以帮助我们对集合进行排序或者查找等操作),Collections中有一个二分查找方法,在使用binarySearch()时,遇到了一些问题,通过查询资料了解到问题的原因,写一篇博客记录一下。 正文 这里直接使用Ar...
Apache Commons Collections4 的详细指南
1. 什么是 Apache Commons Collections4? Apache Commons Collections4 是一个强大的库,扩展了 Java 标准集合框架,提供了更复杂的集合操作。对于一年左右经验的 Java 开发者,它能帮助你更方便地处理双向映射、自动排序、过滤等功能,这些在标准集合类中很难实现。 2. 如何引入 Apache Commons Collections4? 通过 Maven 引入依赖: <dependency> <groupId>org.a
Milvus创建 Collections
创建Collection涉及定义Schema、设置索引参数、选择度量类型以及决定是否在创建时加载。Collection是一个二维表,具有固定的列和变化的行,每列代表一个字段,每行代表一个实体。Schema定义了Collection的数据结构,确保插入的每个实体都符合约束条件。索引参数可以加快对特定字段的搜索,而度量类型用于测量向量嵌入之间的相似性。创建Collection时,可以选择是否加载,并可以设置分片数、启用mmap、设置TTL和一致性级别等属性。动态字段允许存储非Schema定义的字段及其值。通过这
Python标准库中collections介绍
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
python中collections模块介绍
1、collections介绍 这个模块实现了特定目标的容器,以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择。 namedtuple() 创建命名元组子类的工厂函数 deque 类似列表(list)的容器,实现了在两端快速添加(append)和弹出(pop) ChainMap 类似字典(dict)的容器类,将多个映射...
Python中collections模块介绍
一、模块的基本介绍 1、通常,一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 import加载的模块又可以分为四个通用类别: a、使用python编写的代码(.py文件) b、已被编译为共享库或DLL的C或C++扩展 c 、包好一组模块的包 d 、使用C编写并链接到python解释器的内置模块 2、模块的作用 当我们退出python解释器后重新进入,之前定...
Collections.sort()的详细讲解
Collections.sort()的详细讲解 很多时候都需要对一些数据进行排序的操作。然而那些数据一般都是放在一个集合中如:Map ,Set ,List 等集合中。他们都提供了一个排序方法 sort(),要对数据排序直接使用这个方法就行,但是要保证集合中的对象是 可比较的。 怎么让一个对象是 可比较的,那就需要该对象实现 Comparable 接口啦。然后重写里面的 compareTo()方法。我们可以看到Java中很多类都是实现类这个接口的 如:Integer,Long 等 假设我们有一个学生类,默认需
440



被折叠的 条评论
为什么被折叠?



