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

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)
并集`set1set2`
交集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] = valuemy_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 什么是列表 列表是一种有序的可变序列,用于存储一组数据。它支持多种类型的数据…...

TYUT设计模式精华版

七大原则 单一职责原则 职责要单一不能将太多的职责放在一个类中 开闭原则 软件实体对扩展是开放的,但对修改是关闭的 里氏代换原则 一个可以接受基类对象的地方必然可以接受子类 依赖倒转原则 要针对抽象层编程,而不要针对具体类编程 接口隔离原则 …...

责任链模式

07-责任链模式 1 导读 1.1 定义 包含了一些命令对象和一系列处理对象。每个处理对象决定它能处理哪些命令对象,它也知道如何将它不能处理的命令对象传递给该链中的下一个处理对象。 该模式还描述了往该处理链的末尾添加新的处理对象的方法。 精简定义:为…...

2024.11.29(单链表)

思维导图 声明文件 #ifndef __LINKLIST_H__ #define __LINKLIST_H__#include <myhead.h>typedef char datatype; //数据元素类型 //定义节点类型 typedef struct Node {union{int len; //头节点数据域datatype data; //普通节点数据域};struct Node *next; //指针域…...

用Python做数据分析环境搭建及工具使用(Jupyter)

目录 一、Anaconda下载、安装 二、Jupyter 打开 三、Jupyter 常用快捷键 3.1 创建控制台 3.2 命令行模式下的快捷键 3.3 运行模式下快捷键 3.4 代码模式和笔记模式 3.5 编写Python代码 一、Anaconda下载、安装 【最新最全】Anaconda安装python环境_anaconda配置python…...

洛谷P1443 马的遍历

简单的bfs 题目链接 P1443 马的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 有一个 nm 的棋盘&#xff0c;在某个点(x,y) 上有一个马&#xff0c;要求你计算出马到达棋盘上任意一个点最少要走几步。 输入格式 输入只有一行四个整数&#xff0c;分别为 n…...

实现一个Vue自定义指令

在 Vue 中&#xff0c;自定义指令允许你为 DOM 元素添加特定的行为或功能。下面是一个实现 Vue 自定义指令的简单示例&#xff0c;展示了如何创建一个指令&#xff0c;使得元素在鼠标悬停时改变背景色。 1. 创建自定义指令 在 Vue 2.x 中&#xff0c;你可以在 Vue.directive …...

【已解决】git push需要输入用户名和密码问题

解决方法&#xff1a; 1&#xff09;查看使用的clone方式&#xff1a; git remote -v 2&#xff09;若为HTTPS&#xff0c;删除原clone方式: git remote rm origin 3&#xff09;添加新的clone方式&#xff1a; git remote add origin gitgithub.com:zludon/git_test.git …...

什么是内存对齐?为什么需要内存对齐?

1. 什么是内存对齐 内存对齐是指将数据存储在内存中时&#xff0c;按照一定的规则让数据排列在规定的地址上。具体来说&#xff0c;每个成员变量会按照其自身所占用的字节数对齐&#xff0c;内存首地址为对齐周期的倍数&#xff0c;而对齐周期指的是数据类型的大小。例如&…...

数据库操作、锁特性

1. DML、DDL和DQL是数据库操作语言的三种主要类型 1.1 DML&#xff08;Data Manipulation Language&#xff09;数据操纵语言 DML是用于检索、插入、更新和删除数据库中数据的SQL语句。 主要的DML语句包括&#xff1a; SELECT&#xff1a;用于查询数据库中的数据。 INSERT&a…...

xiaolin coding 图解网络笔记——TCP篇

1. TCP 头格式有哪些&#xff1f; 序列号&#xff1a;在建立连接时由计算机生成的随机数作为其初始值&#xff0c;通过 SYN 包传给接收端主机&#xff0c;每发送一次数据&#xff0c;就【累加】一次该【数据字节数】的大小。用来解决网络包乱序问题。 确认应答号&#xff1a;指…...

基于大数据python 豆果美食推荐数据可视化系统(源码+LW+部署讲解+数据库+ppt)

&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 很对人不知道选题怎么选 不清楚自己适合做哪块内容 都可以免费来问我 避免后期給自己答辩找麻烦 增加难度&#xff08;部分学校只有一次答辩机会 没弄好就延迟…...

ElasticSearch通过es-head插件安装可视化及相关问题

1.es-head下载地址 GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster 2.启动 建议使用vscode启动&#xff0c;并安装好node.js环境 npm installnpm run start 通过http://localhost:9100就可以看到本地添加的es库 3.相关问题 3.1跨域问…...

JVM系列之OOM观测准备

OOM, 全称 “Out Of Memory”&#xff0c;即内存用完的意思。JVM 因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时&#xff08;可分配内存大于需要分配的内存&#xff09;, 就会抛出 java.lang.OutOfMemoryError。在实际的生产应用中&#xff0c;一旦…...

基于Java Springboot Vue3图书管理系统

一、作品包含 源码数据库设计文档万字全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue3、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA 数据库&#x…...

解析生成对抗网络(GAN):原理与应用

目录 一、引言 二、生成对抗网络原理 &#xff08;一&#xff09;基本架构 &#xff08;二&#xff09;训练过程 三、生成对抗网络的应用 &#xff08;一&#xff09;图像生成 无条件图像生成&#xff1a; &#xff08;二&#xff09;数据增强 &#xff08;三&#xff…...

torch.maximum函数介绍

torch.maximum 函数介绍 定义&#xff1a;torch.maximum(input, other) 返回两个张量的逐元素最大值。 输入参数&#xff1a; input: 张量&#xff0c;表示第一个输入。other: 张量或标量&#xff0c;表示第二个输入。若为张量&#xff0c;其形状需要能与 input 广播。输出&a…...

Git | 理解团队合作中Git分支的合并操作

合并操作 团队合作中Git分支的合并操作分支合并过程1.创建feature/A分支的过程2. 创建分支feature/A-COPY3.合并分支查看代码是否改变 团队合作中Git分支的合并操作 需求 假设团队项目中的主分支是main,团队成员A基于主分支main创建了feature/A&#xff0c;而我又在团队成员A创…...

源代码定制编译:构建理想的库 以curl为例

文章目录 源代码curl开发环境下载地址制定理想的库初级进阶如何知道选项名称交叉编译交叉编译工具链配置编译环境设置目标架构库和头文件路径编译代码 源代码 我们在日常中会接触到比较多第三方库&#xff0c;比如 网络库相关&#xff1a; libevent、mongoose、curl图形界面&…...

服务熔断-熔断器设计

文章目录 服务为什么需要熔断熔断器设计思想熔断器代码实现 服务为什么需要熔断 对于服务端采用的保护机制为服务限流。 对于服务调用端是否存在保护机制&#xff1f; 假如要发布一个服务 B&#xff0c;而服务 B 又依赖服务 C&#xff0c;当一个服务 A 来调用服务 B 时&#x…...

生产环境中:Flume 与 Prometheus 集成

在生产环境中&#xff0c;将 Apache Flume 与 Prometheus 集成的过程&#xff0c;需要借助 JMX Exporter 或 HTTP Exporter 来将 Flume 的监控数据转换为 Prometheus 格式。以下是详细的实现方法&#xff0c;连同原理和原因进行逐步解释&#xff0c;让刚接触的初学者也能完成集…...

深度解析MySQL的刷脏机制

前言 今天天气挺好,看大家对MySQL系列这么感兴趣,继续来聊聊MySQL,在MySQL的InnoDB中Buffer Pool和LSN关系紧密相连,尤其在脏页管理和刷新过程中起着至关重要的作用。理解LSN如何同Buffer Pool协同工作,有助于深入掌握 MySQL 的写入优化机制及数据一致性保证。 Buffer P…...

Java NIO 全面详解:初学者入门指南

除了前一篇文章讲的传统的 java.io 模块&#xff0c;Java 还提供了更现代化、更高效的非阻塞 IO 模块&#xff0c;即 java.nio&#xff08;New IO&#xff09;。java.nio 引入了面向缓冲区&#xff08;Buffer&#xff09;的数据处理方式&#xff0c;以及多路复用器&#xff08;…...

优化 Conda 下载速度:详细的代理配置和网络管理策略

优化 Conda 下载速度&#xff1a;详细的代理配置和网络管理策略 为了彻底解决使用 Conda 下载 PyTorch 时遇到的速度问题&#xff0c;并确保下载过程稳定可靠&#xff0c;这需要一个详细、综合的技术方案。让我们更深入地分析问题原因&#xff0c;然后详尽地解释采取的解决策略…...

蓝牙MCU单片机8k高回报率无线应用

随着高端无线产品性能大幅提升&#xff0c;相比常规蓝牙133Hz回报率&#xff0c;8kHz回报率作为市场最高标准&#xff0c;每秒上传8000个数据包。以鼠标为例&#xff0c;位置每秒更新8000次&#xff0c;刷新率较常规蓝牙提升了60倍&#xff0c;超低延迟、极速响应&#xff0c;已…...

Java抛出自定义运行运行

1.重新生成异常的.java文件 Empty&#xff1a;空 Exception&#xff1a;异常 加起来就是 空指针异常的文件 2.打上extends 运行的异常&#xff08;异常的类型&#xff09; 3.点击ctrlo&#xff0c;选着这两个快捷重写 4.在需要抛出异常的地方写上&#xff1a;th…...

JVM 性能调优 -- JVM常用调优工具【jps、jstack、jmap、jstats 命令】

前言&#xff1a; 前面我们分析怎么去预估系统资源&#xff0c;怎么去设置 JVM 参数以及怎么去看 GC 日志&#xff0c;本篇我们分享一些常用的 JVM 调优工具&#xff0c;我们在进行 JVM 调优的时候&#xff0c;通常需要借助一些工具来对系统的进行相关分析&#xff0c;从而确定…...

python+django自动化部署日志采用‌WebSocket前端实时展示

一、开发环境搭建和配置 # channels是一个用于在Django中实现WebSocket、HTTP/2和其他异步协议的库。 pip install channels#channels-redis是一个用于在Django Channels中使用Redis作为后台存储的库。它可以用于处理#WebSocket连接的持久化和消息传递。 pip install channels…...

【Flink-scala】DataStream编程模型之窗口计算-触发器-驱逐器

DataStream API编程模型 1.【Flink-Scala】DataStream编程模型之数据源、数据转换、数据输出 2.【Flink-scala】DataStream编程模型之 窗口的划分-时间概念-窗口计算程序 文章目录 DataStream API编程模型前言1.触发器1.1 代码示例 2.驱逐器2.1 代码示例 总结 前言 本小节我想…...

毕昇入门学习

schemas.py 概述 这段代码主要定义了一系列基于 Pydantic 的数据模型&#xff08;BaseModel&#xff09;&#xff0c;用于数据验证和序列化&#xff0c;通常用于构建 API&#xff08;如使用 FastAPI&#xff09;。这些模型涵盖了用户认证、聊天消息、知识库管理、模型配置等多…...

实时数据开发|Flink实现数据输出--DataSinks操作

哇哦&#xff0c;又是快乐周五&#xff01;今天主管又又又请我们喝奶茶了&#xff0c;是乐乐茶的草莓新品。甜甜的草莓配上糯叽叽的麻薯&#xff0c;喝完好满足。这应该不是什么加班信号吧哈哈哈&#xff0c;不加不加周五要回家。 前几天被不同的bug缠身&#xff0c;今天终于正…...

详解网络代理模式:规则、全局与直连的应用与配置

“详解网络代理模式&#xff1a;规则、全局与直连的应用与配置” 当然&#xff0c;为了提供更深入的理解&#xff0c;让我们对每种代理模式进行更详尽的探讨&#xff0c;包括它们的内部工作机制、具体使用场景以及在实际应用中的优势和局限。 规则模式&#xff08;Rule-based…...

Nacos部署和使用(服务注册与发现、配置中心)

1. docker部署nacos 参考&#xff1a; docker安装nacos-CSDN博客 2.注册中心原理 在微服务远程调用的过程中&#xff0c;包括两个角色&#xff1a; 服务提供者&#xff1a;提供接口供其它微服务访问&#xff0c;比如 A-service服务消费者&#xff1a;调用其它微服务提供的…...

医学机器学习:数据预处理、超参数调优与模型比较的实用分析

摘要 本文介绍了医学中的机器学习&#xff0c;重点阐述了数据预处理、超参数调优和模型比较的技术。在数据预处理方面&#xff0c;包括数据收集与整理、处理缺失值、特征工程等内容&#xff0c;以确保数据质量和可用性。超参数调优对模型性能至关重要&#xff0c;介绍了多种调…...

【大数据学习 | Spark-SQL】关于RDD、DataFrame、Dataset对象

1. 概念&#xff1a; RDD&#xff1a; 弹性分布式数据集&#xff1b; DataFrame&#xff1a; DataFrame是一种以RDD为基础的分布式数据集&#xff0c;类似于传统数据库中的二维表格。带有schema元信息&#xff0c;即DataFrame所表示的二维表数据集的每一列都带有名称和类型…...

流媒体中ES流、PS流 、TS流怎么理解

在流媒体的领域中&#xff0c;ES流、PS流和TS流是视频和音频数据的不同封装格式。它们通常用于传输、存储和播放多媒体内容。让我们分别了解一下它们的定义和用途。 1. ES流&#xff08;Elementary Stream&#xff09; ES流&#xff08;基本流&#xff09;是最基本的视频或音…...

阿里云ECS服务器磁盘空间不足的几个文件

查看磁盘空间命令&#xff1a; df -h /mnt 清零 echo >nohup.out 磁盘空间不足的文件列表&#xff1a; 一、nohup.out&#xff1a;来自"nohup java -jar service.jar &"命令产生的文件&#xff0c;位置在服务jar所在目录 二、access.log&#xff1a;位于…...

pip 安装指定镜像源

pip 安装指定镜像源 使用 pip 安装时&#xff0c;可以通过指定镜像源来加速安装速度&#xff0c;尤其在网络状况不佳或需要访问国内镜像源的情况下。 常见的国内镜像源 清华大学: https://pypi.tuna.tsinghua.edu.cn/simple 阿里云: https://mirrors.aliyun.com/pypi/simple …...

java全栈day10--后端Web基础(基础知识)

引言&#xff1a;只要能通过浏览器访问的网站全是B/S架构&#xff0c;其中最常用的服务器就是Tomcat 在浏览器与服务器交互的时候采用的协议是HTTP协议 一、Tomcat服务器 1.1介绍 官网地址&#xff1a;Apache Tomcat - Welcome! 1.2基本使用(网上有安装教程&#xff0c;建议…...

GPT(Generative Pre-trained Transformer) 和 Transformer的比较

GPT&#xff08;Generative Pre-trained Transformer&#xff09; 和 Transformer 的比较 flyfish 1. Transformer 是一种模型架构 Transformer 是一种通用的神经网络架构&#xff0c;由 Vaswani 等人在论文 “Attention Is All You Need”&#xff08;2017&#xff09;中提…...

大数据营销

大数据营销是一个热门的大数据应用。对于多数企业而言&#xff0c;大数据营销的主要价值源于以下几个方面。 市场预测与决策分析支持 数据对市场预测及决策分析的支持&#xff0c;早就在数据分析与数据挖掘盛行的年代被提出过。沃尔玛著名的“啤酒与尿布”案例就是那个时候的杰…...

数据字典的实现与应用 —— 提高系统灵活性与维护效率的关键

目录 前言1. 数据字典的基本概念1.1 什么是数据字典1.2 数据字典的主要特点 2. 数据字典的优势2.1 提高代码复用性2.2 提升系统的灵活性2.3 方便非技术人员管理2.4 减少错误概率 3. 数据字典在若依中的实现3.1 若依框架简介3.2 数据字典的结构设计 4. 若依框架中数据字典的配置…...

Scrapy管道设置和数据保存

1.1 介绍部分&#xff1a; 文字提到常用的Web框架有Django和Flask&#xff0c;接下来将学习一个全球范围内流行的爬虫框架Scrapy。 1.2 内容部分&#xff1a; Scrapy的概念、作用和工作流程 Scrapy的入门使用 Scrapy构造并发送请求 Scrapy模拟登陆 Scrapy管道的使用 Scrapy中…...

Jenkins的使用

文章目录 一、Jenkins是什么\有什么用\与GitLab的对比二、Jenkins的安装与配置Jenkins的安装方式在Linux上安装Jenkins&#xff1a;在Windows上安装Jenkins&#xff1a;配置Jenkins&#xff1a; &#xff08;可选&#xff09;配置启动用户为root&#xff08;一定要是root吗??…...

计算机基础 原码反码补码问题

整数的二进制的表示形式&#xff1a;其实有三种 原码&#xff1a;直接根据数值写出的二进制序列就是原码 反码&#xff1a;原码的符号位不变&#xff0c;其他位按位取反就是反码 补码&#xff1a;反码1&#xff0c;就是补码 负数&#xff1a;-1 以补码形式存放在内存 写出 -1…...

ORB-SLAM2 ----- LocalMapping::SearchInNeighbors()

文章目录 一、函数意义二、函数讲解三、函数代码四、本函数使用的匹配方法ORBmatcher::Fuse()1. 函数讲解2. 函数代码 四、总结 一、函数意义 本函数是用于地图点融合的函数&#xff0c;前面的函数生成了新的地图点&#xff0c;但这些地图点可能在前面的关键帧中已经生成过了&a…...

游戏引擎学习第27天

仓库:https://gitee.com/mrxiao_com/2d_game 欢迎 项目的开始是从零开始构建一款完整的游戏&#xff0c;完全不依赖任何库或引擎。这样做有两个主要原因&#xff1a;首先&#xff0c;因为这非常有趣&#xff1b;其次&#xff0c;因为它非常具有教育意义。了解游戏开发的低层次…...

【超全总结】深度学习分割模型的损失函数类别及应用场景

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...

基于HTML和CSS的校园网页设计与实现

摘要 随着计算机、互联网与通信技术的进步&#xff0c;Internet在人们的学习、工作和生活中的地位也变得越来越高&#xff0c;校园网站已经成为学校与学生&#xff0c;学生与学生之间交流沟通的重要平台&#xff0c;对同学了解学校内发生的各种事情起到了重要的作用。学校网站…...

深度学习基础02_损失函数BP算法(上)

目录 一、损失函数 1、线性回归损失函数 1.MAE损失 2.MSE损失 3.SmoothL1Loss 2、多分类损失函数--CrossEntropyLoss 3、二分类损失函数--BCELoss 4、总结 二、BP算法 1、前向传播 1.输入层(Input Layer)到隐藏层(Hidden Layer) 2.隐藏层(Hidden Layer)到输出层(Ou…...