去重并保持原来的顺序OrderedDict

embedded/2024/10/22 5:09:18/

python中集合set可以去重,但是并不保留顺序。

利用python自带的库collections中的OrderedDict可以顺利实现去重并保留顺序。

样例:

import random
from collections import OrderedDict#产生10个随机数
lista=[random.randint(1,10) for i in range(10)]
print(lista)#利用OrderedDict关键字去重功能
orderD=OrderedDict.fromkeys(lista)
print(list(orderD))

结果

[6, 4, 8, 2, 8, 6, 3, 4, 8, 6]
[6, 4, 8, 2, 3]

完美实现去重并保留顺序

使用collections模块中的这些数据类型可以帮助你更高效地处理数据,并提供更简洁、更易于理解的代码。每种数据类型都有其特定的用途和优势,可以根据具体需求选择使用。

#--------------------------------------------------------------------------------------------------------------------

另外,collections还有默认值字典可以使用。

defaultdict: 这是一个字典子类,它提供了一个工厂函数,用于为字典提供默认值。当访问字典中不存在的键时,它会调用工厂函数来提供默认值。

from collections import defaultdict  

d=defaultdict(int) #参数可以是某种类,int默认值为0;可以是list/

d[1]=2

d[3]=8

print(d[0])

d[0]不存在,如果使用普通字典则会报错,使用默认值字典则不会报错。

#------------------------------------------------------------------------------------------------------------------------

deque: 这是一个双端队列,支持从两端添加和弹出元素。

from collections import deque  

d = deque()  

d.append('a')  

d.appendleft('b')  

print(d)  # 输出: deque(['b', 'a'])

d.pop()

d.popleft()

print(d)


http://www.ppmy.cn/embedded/10690.html

相关文章

3. Vue Router4 基础用法

1. 路由的定义和使用 在 Vue Router4 中,路由的定义和使用是非常直观和简单的。每一个路由都是一个对象,包含 path 和 component 这两个属性。path 属性表示路由的路径,component 属性表示路由对应的组件。 以下是一个简单的路由定义示例&a…

HTTP/1.1特性总结

优点 【简单,灵活和易于扩展,应用广泛和跨平台】 1.简单: http基本的报文格式就是headerbody,头部信息也是key-value简单的文本形式,易于理解,降低了学习和使用的门槛 2.灵活和易于扩展: &…

【单例模式】饿汉式、懒汉式、静态内部类--简单例子

单例模式是⼀个单例类在任何情况下都只存在⼀个实例,构造⽅法必须是私有的、由⾃⼰创建⼀个静态变量存储实例,对外提供⼀个静态公有⽅法获取实例。 目录 一、单例模式 饿汉式 静态内部类 懒汉式 反射可以破坏单例 道高一尺魔高一丈 枚举 一、单例…

Sentinel + Nacos流控规则持久化配置

json参数对映sentinel 规则面板 [{"controlBehavior": 0,"count": 2,"grade": 1,"limitApp": "default","resource": "flow","strategy": 0} ] 第二步,告诉订单服务读取配置&…

windows ubuntu子系统,肿瘤全外篇1.安装软件及建立数据库

外显子组测序(Exome sequencing)是指利用序列捕获技术将全基因组外显子区域DNA捕捉并富集后进行高通量测序的基因组分析方法。由于外显子组测序捕获目标区域只占人类基因组长度的约1% ,但变异占比高达85%,因此远比进行全基因组序列测序来得更简便、经济&…

鸿蒙开发基础认证 课后习题汇总

目录 【习题】运行Hello World工程 判断题 单选题 多选题 该小节补充知识: 【习题】ArkTS基础知识 判断题 单选题 多选题 该小节补充知识: 基本概念 状态管理 页面级变量的状态管理 应用级变量的状态管理: 【习题】运行Hello…

Java单例模式的五种实现方式 懒汉式 饿汉式 双重校验锁 静态变量 静态内部类 枚举实现单例模式等

1、什么是单例模式? Java单例模式是一种设计模式,用于确保一个类只有一个实例,并提供全局访问点以获取该实例。它通常用于需要共享资源或控制某些共享状态的情况下。 2、实现方式 懒汉式:在类加载的时候就创建对象,…

js 处理时间一些函数

对于前端来说 关于 时间的各种 转换是是经常遇到的问题。今天记录下,省的来回查。耽误时间。有需要的可以借鉴下。 这是在vue2 项目下 用到的。需要安装 moment 我安装的是 "moment": "^2.29.4", npm install momentimport moment from mome…