当前位置: 首页 > news >正文

Python几种常用数据结构(重制版)

一、列表 [List]
  • 定义:有序可重复的数据集合。
  • 示例my_list = ['element1', 'element2', 'element3']
  • 增加元素方法
    • append():在列表末尾增加单个元素(列表特有方法),例如 my_list.append('element')
    • extend():在列表末尾一次增加多个元素(列表特有方法),如 my_list.extend(['element4', 'element5'])
    • insert():指定下标索引增加元素,像 my_list.insert(1, 'element')
  • 删除元素方法
    • remove():移除指定元素,若元素不存在会报错,如 my_list.remove('element');可通过 try-except 结构处理元素不存在的情况。
    • 通过切片指定索引删除,例如 my_list[1:3] = []
    • pop():删除指定下标索引的元素(空索引即末位删除),并返回被删元素,如 popped_element = my_list.pop(1)
    • del:删除指定下标索引的元素(空索引即末位删除),像 del my_list[1]
  • 修改元素方法:通过指定索引修改元素,如 my_list[0] = 'modified_element'
二、集合 {Set}
  • 定义:无序且元素唯一的数据集合。
  • 示例my_set = {'element1', 'element2', 'element3'}
  • 增加元素方法
    • add():增加单个元素(集合特有方法),例如 my_set.add('element')
    • update():增加多个元素(集合和字典共用的方法),如 my_set.update(['element4', 'element5'])
  • 删除元素方法
    • pop():随机删除元素。
    • discard():删除指定元素,不存在也不报错(集合特有方法),比如 my_set.discard('element');若使用 remove() 移除指定元素,元素不存在会报错,可通过 try-except 结构处理。
  • 修改元素:集合中元素具有唯一性,通常通过先删除旧元素再添加新元素来实现类似修改的操作。
三、字典 {Dictionary}
  • 定义:以键值对形式存储数据,键是唯一的。
  • 示例my_dict = {'key1': 'value1', 'key2': 'value2'}
  • 增加元素方法
    • 直接通过指定新键并赋值来增加单对键值,例如 my_dict['key3'] = 'value3'
    • update():增加多对键值(集合和字典共用的方法),如 my_dict.update({'key4': 'value4', 'key5': 'value5'})
  • 删除元素方法
    • del:删除指定键值,不返回被删键值,像 del my_dict['key3']
    • pop():删除指定键值,返回被删键值,例如 value = my_dict.pop('key2')
  • 修改元素方法:通过指定键来修改对应的值,如 my_dict['key1'] = 'modified_value1'
四、元组(Tuple)
  • 定义:有序且不可变的数据集合,适合存储不需要修改的数据。
  • 示例my_tuple = ('element1', 'element2', 'element3')
  • 修改元素方式:元组本身不可直接修改,若需修改,可创建一个新的元组,比如 new_tuple = my_tuple[:1] + ('modified_element',) + my_tuple[2:];也可以先转换为列表进行修改后再转换回元组,像 my_list_from_tuple = list(my_tuple)

延展:格式转化

当列表有重复元素,可利用集合唯一性去重

my_list = ['element1', 'element2', 'element2', 'element3']  # 这里有重复元素的列表示例
# 先将列表转换为集合,利用集合元素唯一性的特点去重
unique_set = set(my_list)
# 再将去重后的集合转换回列表
new_list = list(unique_set)
print(new_list)

相关文章:

Python几种常用数据结构(重制版)

一、列表 [List] 定义:有序可重复的数据集合。示例:my_list [element1, element2, element3]增加元素方法: append():在列表末尾增加单个元素(列表特有方法),例如 my_list.append(element)。e…...

C++ 游戏开发:开启游戏世界的编程之旅(2)

三、游戏输入处理 (一)键盘输入处理 在游戏中,玩家通过键盘输入来控制角色的行动。我们需要在游戏循环中不断检测键盘事件,并根据不同的按键按下或松开状态来执行相应的操作。例如,在 SDL 中,可以这样处理…...

用 Python 做数据分析需要掌握哪些基础?

用 Python 做数据分析,需要掌握以下几个基础方面: 1. Python 编程基础 语法基础:变量、数据类型(如字符串、整数、浮点数、布尔值)、条件语句(if-else)、循环(for、while&#xff0…...

UE5 像素流进行内网https证书创建

确定证书需求 内网 HTTPS 通信通常需要以下内容: 自签名证书(适用于内网环境,不需要通过公开的证书颁发机构 CA) 或者通过内部的企业 CA 签发的证书(更安全)。 生成自签名证书 使用工具(如 Ope…...

Envoy-istio

最近研究envoy-istio,发现这个博客,觉得很不错,这里记录一下 envoy-istio介绍 envoy-istio - 随笔分类 - yaowx - 博客园 envoy部分七:envoy的http流量管理基础 envoy部分六:envoy的集群管理 envoy部分五&#xff…...

CTF-PWN: WEB_and_PWN [第一届“吾杯”网络安全技能大赛 Calculator] 赛后学习(不会)

附件 calculate.html <!DOCTYPE html> <html lang"en"> <head><!-- 设置字符编码为 UTF-8&#xff0c;支持多语言字符集 --><meta charset"UTF-8"><!-- 设置响应式视图&#xff0c;确保页面在不同设备上自适应显示 --&…...

【数据结构与算法】排序算法(上)——插入排序与选择排序

文章目录 一、常见的排序算法二、插入排序2.1、直接插入排序2.2、希尔排序( 缩小增量排序 ) 三、选择排序3.1、直接选择排序3.2、堆排序3.2.1、堆排序的代码实现 一、常见的排序算法 常见排序算法中有四大排序算法&#xff0c;第一是插入排序&#xff0c;二是选择排序&#xff…...

Linux操作系统性能优化

Linux操作系统性能优化 1. TCP连接出现大量ESTABLISHED连接解决方法 1. TCP连接出现大量ESTABLISHED连接解决方法 TCP协议规定&#xff0c;对于已经建立的连接&#xff0c;网络双方要进行四次握手才能成功断开连接&#xff0c;如果缺少了其中某个步骤&#xff0c;将会使连接处于…...

iOS与Windows间传文件

想用数据线从 windows 手提电脑传文件入 iPhone&#xff0c;有点迂回。 参考 [1]&#xff0c;要在 windows 装 Apple Devices。装完、打开、插线之后会检测到手机&#xff0c;界面&#xff1a; 点左侧栏「文件」&#xff0c;不是就直接可以传&#xff0c;而是要通过某个应用传…...

在数据库设计中同步冗余字段的思考与实践

目录 前言1. 冗余字段设计的背景与场景1.1 场景描述1.2 冗余字段的必要性 2. 冗余字段设计的优点2.1 提高查询效率2.2 简化应用逻辑 3. 冗余字段设计的缺点与挑战3.1 数据不一致问题3.2 更新开销增加3.3 数据冗余占用存储空间 4. 如何同步更新冗余字段4.1 手动更新方式4.2 使用…...

Qt 带数据库功能的项目部署之后,数据库无法打开问题解决方法

前言&#xff1a;最近项目添加了sqlite数据库功能&#xff0c;在qtcreator直接运行时&#xff0c;打开数据库正常&#xff0c;但是部署之后&#xff0c;发现数据库打开会失败&#xff0c;提示“driver not loaded”错误&#xff0c;后来发现是因为sqldrivers文件夹目录不对导致…...

汇编语言学习-二

好吧&#xff0c;已经隔了两天&#xff0c;下完班看了两天&#xff0c;在电脑上装了虚拟机版的MS_DOS,主要是怕折腾坏我的电脑系统&#xff1b; 这个第二天应该是称为第二章更为合适&#xff0c;目前第二章已经看完&#xff0c;基本的命令也是敲了敲&#xff1b; 下面就进行一…...

【嘟嘟早教卡】 小程序源码分享带后台管理

【嘟嘟早教卡】是专门为 3-6 岁婴幼儿童学习普通话、英语研发的早教启蒙认知识字的小程序 小程序由 Taro 及 Tailwind CSS 构建而成&#xff0c;后台管理使用 Laravel 及 Tailwind CSS 想法源于小时候玩的认知卡片&#xff0c;基本大部分家庭都买过认知卡片&#xff0c;我按照…...

JavaEE-经典多线程样例

文章目录 单例模式设计模式初步引入为何存在单例模式饿汉式单例模式饿汉式缺陷以及是否线程安全懒汉式单例模式基础懒汉式缺陷以及是否线程安全懒汉式单例模式的改进完整代码(变量volatile) 阻塞队列生产者消费者模型生产者消费者模型的案例以及优点请求与响应案例解耦合削峰填…...

从 HTML 到 CSS:开启网页样式之旅(五)—— CSS盒子模型

从 HTML 到 CSS&#xff1a;开启网页样式之旅&#xff08;五&#xff09;—— CSS盒子模型 前言一、盒子模型的组成margin&#xff08;外边距&#xff09;&#xff1a;border&#xff08;边框&#xff09;&#xff1a;padding&#xff08;内边距&#xff09;&#xff1a;conten…...

数据分析(一): 掌握STDF 掌握金钥匙-码农切入半导体的捷径

中国的半导体行业必然崛起&#xff01;看清这个大势&#xff0c;就会有很多机会。 今天&#xff0c;我们一起来了解一下半导体行业的一朵金花&#xff1a;STDF。 实际上这只是一种文件格式&#xff0c;但是当你熟练掌握解析这种文件的时候&#xff0c;你就已经打开在这个基础…...

HCIA-openGauss_1_4基本功能介绍

openGauss支持标准SQL SQL是用于访问和处理数据库的标准计算机语言&#xff0c;SQL标准的定义分成核心特性以及可选特性&#xff0c;绝大部分的数据库都没有100%支撑SQL标准。openGuass支持SQL2003标准语法&#xff0c;支持主备部署的高性能可用关系型数据库。openGauss数据库…...

医学临床机器学习中算法公平性与偏差控制简析

摘要 随着医疗领域中数据的不断积累和计算能力的提升&#xff0c;临床机器学习技术发展迅速&#xff0c;但算法不公平性和偏差问题凸显。本文深入探讨了临床机器学习算法公平性的重要性、概念与定义、在临床应用中的影响、偏差来源、降低偏差方法及提升公平性策略。通过对不同…...

Leetcode打卡:棋盘上有效移动组合的数目

执行结果&#xff1a;通过 题目&#xff1a;2056 棋盘上有效移动组合的数目 有一个 8 x 8 的棋盘&#xff0c;它包含 n 个棋子&#xff08;棋子包括车&#xff0c;后和象三种&#xff09;。给你一个长度为 n 的字符串数组 pieces &#xff0c;其中 pieces[i] 表示第 i 个棋子的…...

生产看板到底在看什么?

说起生产看板&#xff0c;可能很多人脑海里冒出来的画面是&#xff1a;车间里一块挂在墙上的大板子&#xff0c;上面贴满了各式各样的卡片、表格&#xff0c;甚至还有几个闪闪发光的指示灯。但是&#xff0c;无论是精益生产方式代表——丰田&#xff0c;还是当下以“智能制造”…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...