Python的秘密基地--[章节2]Python核心数据结构
第2章:Python核心数据结构
Python中的数据结构提供了强大的工具来存储和操作数据。理解这些数据结构是Python编程的基础。
2.1 列表(List)
2.1.1 什么是列表
列表是一种有序的可变序列,用于存储一组数据。它支持多种类型的数据混合存储。
# 创建一个列表
my_list = [1, 2, 3, 4, 5]
print(my_list) # 输出: [1, 2, 3, 4, 5]
2.1.2 列表常用操作
| 操作 | 语法 | 示例 |
|---|---|---|
| 访问元素 | list[index] | my_list[0] -> 1 |
| 添加元素 | list.append(value) | my_list.append(6) |
| 插入元素 | list.insert(index, value) | my_list.insert(2, 99) |
| 删除元素 | list.remove(value) | my_list.remove(3) |
| 获取长度 | len(list) | len(my_list) -> 5 |
| 切片操作 | list[start:end:step] | my_list[1:4] -> [2, 3, 4] |
| 排序 | list.sort() | my_list.sort() |
2.1.3 示例代码
# 创建和操作列表
my_list = [10, 20, 30, 40]
my_list.append(50) # 添加元素
my_list.remove(20) # 删除元素
print(my_list) # 输出: [10, 30, 40, 50]
2.2 元组(Tuple)
2.2.1 什么是元组
元组是不可变的有序序列,一旦创建就不能修改。
# 创建一个元组
my_tuple = (1, 2, 3)
print(my_tuple) # 输出: (1, 2, 3)
2.2.2 元组的特点
- 不可变性:元素不可更改,但可以包含可变对象。
- 支持索引和切片。
2.2.3 示例代码
# 元组的访问和切片
my_tuple = (10, 20, 30, 40)
print(my_tuple[1]) # 输出: 20
print(my_tuple[1:3]) # 输出: (20, 30)
2.3 集合(Set)
2.3.1 什么是集合
集合是一个无序且不重复的元素集合,适合去重和集合运算。
# 创建一个集合
my_set = {1, 2, 3, 3, 4}
print(my_set) # 输出: {1, 2, 3, 4}
2.3.2 常用操作
| 操作 | 语法 | 示例 |
|---|---|---|
| 添加元素 | set.add(value) | my_set.add(5) |
| 删除元素 | set.remove(value) | my_set.remove(3) |
| 并集 | `set1 | set2` |
| 交集 | set1 & set2 | {1, 2} & {2, 3} -> {2} |
| 差集 | set1 - set2 | {1, 2} - {2, 3} -> {1} |
2.3.3 示例代码
# 集合运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2) # 并集: {1, 2, 3, 4, 5}
print(set1 & set2) # 交集: {3}
print(set1 - set2) # 差集: {1, 2}
2.4 字典(Dictionary)
2.4.1 什么是字典
字典是键值对的无序集合,每个键是唯一的。
# 创建一个字典
my_dict = {"name": "Alice", "age": 25}
print(my_dict) # 输出: {'name': 'Alice', 'age': 25}
2.4.2 字典常用操作
| 操作 | 语法 | 示例 |
|---|---|---|
| 访问值 | dict[key] | my_dict["name"] -> Alice |
| 添加键值对 | dict[key] = value | my_dict["city"] = "NY" |
| 删除键值对 | del dict[key] | del my_dict["age"] |
| 获取所有键 | dict.keys() | my_dict.keys() |
| 获取所有值 | dict.values() | my_dict.values() |
2.4.3 示例代码
# 字典操作
my_dict = {"name": "Alice", "age": 25}
my_dict["city"] = "New York" # 添加新键值对
print(my_dict["name"]) # 输出: Alice
del my_dict["age"] # 删除键值对
print(my_dict) # 输出: {'name': 'Alice', 'city': 'New York'}
2.5 字符串处理
2.5.1 字符串基础
字符串是不可变的字符序列。
# 创建字符串
my_string = "Hello, Python!"
print(my_string) # 输出: Hello, Python!
2.5.2 常用操作
| 操作 | 语法 | 示例 |
|---|---|---|
| 拼接字符串 | str1 + str2 | "Hello, " + "Python!" -> “Hello, Python!” |
| 替换 | str.replace(old, new) | "Python".replace("P", "J") -> “Jython” |
| 分割 | str.split(separator) | "a,b,c".split(",") -> [‘a’, ‘b’, ‘c’] |
| 转换大小写 | str.upper(), str.lower() | "abc".upper() -> “ABC” |
2.5.3 示例代码
# 字符串操作
text = "Python is fun!"
print(text.upper()) # 输出: PYTHON IS FUN!
print(text.replace("fun", "awesome")) # 输出: Python is awesome!
总结
请看下一篇
相关文章:
Python的秘密基地--[章节2]Python核心数据结构
第2章:Python核心数据结构 Python中的数据结构提供了强大的工具来存储和操作数据。理解这些数据结构是Python编程的基础。 2.1 列表(List) 2.1.1 什么是列表 列表是一种有序的可变序列,用于存储一组数据。它支持多种类型的数据…...
【Electron学习笔记(三)】Electron的主进程和渲染进程
Electron的主进程和渲染进程 Electron的主进程和渲染进程前言正文1、主进程2、渲染进程3、Preload 脚本3.1 在项目目录下创建 preload.js 文件3.2 在 main.js 文件下创建路径变量并将 preload.js 定义为桥梁3.3 在 preload.js 文件下使用 electron 提供的contextBridge 模块3.4…...
[免费]SpringBoot+Vue景区订票(购票)系统【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue大景区订票(购票)系统,分享下哈。 项目视频演示 【免费】SpringBootVue景区订票(购票)系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 现代经济快节奏发展以及不断完善升级的信息…...
idea_工程与模块管理
module相关操作 项目结构新建module移除模块删除模块导入模块 项目结构 层级关系 project(工程) - module(模块) - package(包) - class(类) 在 IntelliJ IDEA 中Project是最顶级的结构单元 ,然后就是Module。目前,主流的大型项目结构基本都是多Module…...
A02、Java 设计模式优化
1、单例模式 1.1、什么是单例模式 它的核心在于,单例模式可以保证一个类仅创建一个实例,并提供一个访问它的全局访问点。该模式有三个基本要点:一是这个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向…...
jdk8没有Buffer.put()
在Java中,Buffer是一个抽象类,它定义了缓冲区的通用行为。不过,Buffer本身并没有直接提供put()方法。put()方法是在Buffer的子类中定义的,比如ByteBuffer、CharBuffer、ShortBuffer、IntBuffer、LongBuffer、FloatBuffer和DoubleB…...
Artec Leo:航海设备维护的便携式3D扫描利器【沪敖3D】
挑战:海军服务提供商USP Maritime需要CAD数据来执行维修和改装任务,特别是在偏远地区的任务,以及原始设计丢失的情况下。 解决方案:Artec Leo, Artec Studio, Autodesk Inventor 效果:高精度船舶组件和船坞机械模型&…...
HCIA笔记6--路由基础
0. 概念 自治系统:一个统一管理的大型网络,由路由器组成的集合。 路由器隔离广播域,交换机隔离冲突域。 1.路由器工作原理 路由器根据路由表进行转发数据包; 路由表中没有路由,直接丢弃该数据包路由表中只有一条路…...
说说Elasticsearch拼写纠错是如何实现的?
大家好,我是锋哥。今天分享关于【说说Elasticsearch拼写纠错是如何实现的?】面试题。希望对大家有帮助; 说说Elasticsearch拼写纠错是如何实现的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Elasticsearch 中&…...
Ubuntu20.04运行R-VIO2
目录 1.环境配置2.构建项目3. 运行 VIO 模式4.结果图 1.环境配置 CMakeLists.txt中 C 使用 14、opencv使用4 2.构建项目 克隆代码库: 在终端中执行以下命令克隆项目:git clone https://github.com/rpng/R-VIO2.git编译项目: 使用 catkin_m…...
【软件项目测试文档大全】软件测试方案,验收测试计划,验收测试报告,测试用例,集成测试,测试规程和指南,等保测试(Word原件)
1. 引言 1.1. 编写目的 1.2. 项目背景 1.3. 读者对象 1.4. 参考资料 1.5. 术语与缩略语 2. 测试策略 2.1. 测试完成标准 2.2. 测试类型 2.2.1. 功能测试 2.2.2. 性能测试 2.2.3. 安全性与访问控制测试 2.3. 测试工具 3. 测试技术 4. 测试资源 4.1. 人员安排 4.…...
Kubernetes集群操作
查看集群信息: kubectl get nodes 删除节点 (⽆效且显示的也可以删除) 后期如果 要删除某个节点,为了不增加其他节点的访问压力,先增加一个节点,再删除要删除的节点 语法 :kubect delete…...
分布式事务调研
目录 需求背景: 本地事务 分布式基本理论 1、CAP 定理 2、BASE理论 分布式事务方案 #2PC #1. 运行过程 #1.1 准备阶段 #1.2 提交阶段 #2. 存在的问题 #2.1 同步阻塞 #2.2 单点问题 #2.3 数据不一致 #2.4 太过保守 3PC #本地消息表 TCC TCC原理 …...
Webpack 的构建流程
Webpack 的构建流程可以概括为以下几个步骤: 1. 初始化: Webpack 读取配置文件(webpack.config.js),合并默认配置和命令行参数,初始化Compiler对象。 2. 构建依赖图: 从入口文件开始递归地分…...
Cesium 当前位置矩阵的获取
Cesium 位置矩阵的获取 在 3D 图形和地理信息系统(GIS)中,位置矩阵是将地理坐标(如经纬度)转换为世界坐标系的一种重要工具。Cesium 是一个强大的开源 JavaScript 库,用于创建 3D 地球和地图应用。在 Cesi…...
ubuntu24.04 python环境
ubuntu24.04 python环境 0.引言1.使用整理 0.引言 新系统安装依赖库时报错: pip3installrequirements.txterror:externally−managed−environmentThisenvironmentisexternallymanaged╰–>ToinstallPythonpackagessystem−wide,tryaptinstallpython3−xyz,whe…...
YOLO系列论文综述(从YOLOv1到YOLOv11)【第9篇:YOLOv7——跨尺度特征融合】
YOLOv7 1 摘要2 网络架构3 改进点4 和YOLOv4及YOLOR的对比 YOLO系列博文: 【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇:YOLO系列论文、代码和主要优缺点汇总】【第3篇:YOLOv1——YOLO的开山之作】【第…...
Elasticearch索引mapping写入、查看、修改
作者:京东物流 陈晓娟 一、ES Elasticsearch是一个流行的开源搜索引擎,它可以将大量数据快速存储和检索。Elasticsearch还提供了强大的实时分析和聚合查询功能,数据模式更加灵活。它不需要预先定义固定的数据结构,可以随时添加或修…...
【大模型微调】一些观点的总结和记录
垂直领域大部分不用保持通用能力的,没必要跟淘宝客服聊天气预报,但是主要还是领导让你保持 微调方法没有大变数了,只能在数据上下功夫,我能想到的只有提高微调数据质量。 sft微调的越多,遗忘的越多. 不过对于小任务,rank比较低(例如8,16)的任务,影响还是有有限的。一…...
Vue 3 Hooks 教程
Vue 3 Hooks 教程 1. 什么是 Hooks? 在 Vue 3 中,Hooks 是一种组织和复用组件逻辑的强大方式。它们允许您将组件的状态逻辑提取到可重用的函数中,从而简化代码并提高代码的可维护性。 2. 基本 Hooks 介绍 2.1 ref 和 reactive 这两个函数…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践
01技术背景与业务挑战 某短视频点播企业深耕国内用户市场,但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大,传统架构已较难满足当前企业发展的需求,企业面临着三重挑战: ① 业务:国内用户访问海外服…...
Python爬虫实战:研究Restkit库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...
RocketMQ 客户端负载均衡机制详解及最佳实践
延伸阅读:🔍「RocketMQ 中文社区」 持续更新源码解析/最佳实践,提供 RocketMQ 专家 AI 答疑服务 前言 本文介绍 RocketMQ 负载均衡机制,主要涉及负载均衡发生的时机、客户端负载均衡对消费的影响(消息堆积/消费毛刺等…...
PySide6 GUI 学习笔记——常用类及控件使用方法(多行文本控件QTextEdit)
文章目录 PySide6.QtWidgets.QTextEdit 应用举例概述核心特性常用方法文本内容操作光标和选择操作格式和样式查找功能视图控制状态设置常用信号 代码示例示例说明1. 基本设置2. 文本格式化功能3. 功能按钮4. 信号处理 PySide6.QtWidgets.QTextEdit 应用举例 概述 QTextEdit 是…...
