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

python数据结构-列表详解

Python中的列表(List)是一种序列类型的数据结构,它支持元素的动态添加和删除,可以容纳任意类型的数据,包括数字、字符串、甚至是其他列表或其他复杂数据结构。列表因其灵活性和广泛的应用场景,成为Python中最常用的数据结构之一。下面将从列表的创建、访问、更新、删除、排序、合并以及高级操作等方面进行详细解析。

1. 列表的创建

列表可以通过多种方式创建,最直观的是使用方括号 []来包含一系列用逗号分隔的元素。

  • 直接赋值创建:
my_list = [1, 2, 3, 'apple', True]
  • 使用列表推导式创建:
squares = [x**2 for x in range(1, 6)]

2. 访问列表元素

列表中的元素可以通过索引来访问。Python中索引从0开始计数,负数索引则从列表尾部开始计数。

  • 访问单个元素:
first_element = my_list[0]  # 访问第一个元素
last_element = my_list[-1] # 访问最后一个元素

3. 更新列表元素

列表的元素可以被修改或替换,这是列表作为可变数据结构的特点。

my_list[1] = 'banana'  # 将第二个元素修改为'banana'
​

4. 删除列表元素

列表元素可以通过几种不同的方法删除:

  • 使用 del语句:
del my_list[2]  # 删除索引为2的元素
​
  • 使用 pop()方法:
popped_item = my_list.pop(0)  # 删除并返回第一个元素
​
  • 使用 remove()方法删除指定值的元素:
my_list.remove('apple')  # 删除值为'apple'的第一个出现的元素
​

5. 排序列表

列表提供了内置的排序方法:

  • sort()方法对列表进行就地排序:
my_list.sort()  # 升序排序
my_list.sort(reverse=True)  # 降序排序
​
  • 使用 sorted()函数返回一个新的已排序列表,不改变原列表:
new_list = sorted(my_list, reverse=True)
​

6. 合并列表

合并列表可以通过多种方式实现:

  • 使用 +运算符:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list1 + list2
​
  • 使用 extend()方法:
list1.extend(list2)  # 将list2的元素添加到list1末尾
​

7. 高级操作

  • 切片(Slicing) :获取列表的一部分。
slice_of_list = my_list[1:4]  # 获取从索引1到3的子列表
​
  • 列表解析(List Comprehensions) :一种更简洁的创建列表的方式。
even_squares = [x**2 for x in range(10) if x % 2 == 0]
​
  • 成员关系测试:使用 in关键字检查元素是否存在于列表中。
if 'apple' in my_list:print("Yes, 'apple' is in the list.")

相关文章:

python数据结构-列表详解

Python中的列表(List)是一种序列类型的数据结构,它支持元素的动态添加和删除,可以容纳任意类型的数据,包括数字、字符串、甚至是其他列表或其他复杂数据结构。列表因其灵活性和广泛的应用场景,成为Python中最常用的数据结构之一。…...

本地环境下 前端突然端口占用问题 针对vscode

1.问题背景 本地运行前端代码,虚拟机中使用nginx反向代理。两者都使用vscode进行开发。后端使用vscode远程连接。在前端发起一次接口请求后,后端会产生新的监听端口,出现如下图的提示情况。随后前端刷新,甚至无法正常显示界面。 …...

flutter 项目调试、flutter run --debug调试模式 devtools界面说明

Flutter DevTools 网页界面说明 1. 顶部导航栏 Inspector:查看和调试 Widget 树,实时定位 UI 问题。Performance-- 性能分析面板,查看帧率、CPU 和 GPU 使用情况,识别卡顿和性能瓶颈。Memory-- 内存使用和对象分配分析&#xff…...

在局域网(LAN)中查看设备的 IP 地址

在局域网(LAN)中查看设备的 IP 地址,可以使用以下几种方法: 方法 1:使用 ipconfig(Windows) 1. 打开 CMD: 按 Win R,输入 cmd,回车。 2. 输入命令&#…...

Axure 基本用法学习笔记

一、元件操作基础 1. 可见性控制 隐藏/显示:可以设置元件的可见性,使元件在特定条件下隐藏或可见 应用场景:创建动态交互效果,如点击按钮显示隐藏内容 2. 层级管理 层级概念:元件有上下层关系,上层元件…...

使用 Hyperlane 实现 WebSocket广播

使用 Hyperlane 实现 WebSocket广播 hyperlane 框架原生支持 WebSocket 协议,开发者无需关心协议升级过程,即可通过统一接口处理 WebSocket 请求。本文将介绍如何使用 hyperlane 实现服务端的单点发送与广播发送功能,以及如何配套实现一个简…...

SQL每日一题(5)

前言:五更!五更琉璃!不对!是,五更佩可! 原始数据: new_hires reasonother_column1other_column2校园招聘信息 11社会招聘信息 22内部推荐信息 33猎头推荐信息 44校园招聘信息 55社会招聘信息…...

git提交通用规范

提交类型 类型说明feat新增功能或特性fix修复Bugdocs文档更新(README、CHANGELOG、注释等)style代码样式调整(空格、分号、格式等,不改变逻辑)refactor代码重构(既非新增功能,也非修复Bug的代码…...

C++ - 仿 RabbitMQ 实现消息队列(3)(详解使用muduo库)

C - 仿 RabbitMQ 实现消息队列(3)(详解使用muduo库) muduo库的基层原理核心概念总结:通俗例子:餐厅模型优势体现典型场景 muduo库中的主要类EventloopMuduo 的 EventLoop 核心解析1. 核心机制:事…...

docker部署XTdrone

目录 一、前置准备 二、依赖安装 三、ros安装 四、gazebo安装 五、mavros安装 六、PX4的配置 七、Xtdrone源码下载 八、xtdrone与gazebo(实际上应该是第四步之后做这件事) 九、键盘控制 参考链接:仿真平台基础配置 语雀 一、前置准…...

图解 | 大模型智能体LLM Agents

文章目录 正文1. 存储 Memory1.1 短期记忆 Short-Term Memory1.1.1 模型的上下文窗口1.1.2 对话历史1.1.3 总结对话历史 1.2 长期记忆Long-term Memory 2. 工具Tools2.1 工具的类型2.2 function calling2.3 Toolformer2.3.1 大模型调研工具的过程2.3.2 生成工具调用数据集 2.4 …...

Lambda表达式的方法引用详解

Lambda表达式的方法引用详解 1. 方法引用的概念与作用 定义:方法引用(Method Reference)是Lambda表达式的一种简化写法,允许直接通过方法名引用已有的方法。核心目的:减少冗余代码,提升可读性,尤其在Lambda仅调用一个现有方法时。语法符号:双冒号 ::。2. 方法引用的四种…...

echarts设置标线和最大值最小值

echarts设置标线和最大值最小值 基本ECharts图表初始化配置 设置动态的y轴范围(min/max值) 通过markPoint标记最大值和最小值点 使用markLine添加水平参考线 配置双y轴图表 自定义标记点和线的样式(颜色、符号等) 响应式调整图表大…...

gcc编译构建流程

0. 项目结构 /home/pi/test/ ├── src/ │ ├── add/ │ │ ├── add.cpp │ │ ├── add.h │ └── log/ │ ├── log.cpp │ ├── log.h │ ├── data.h ├── main.cppmain.cpp代码 // main.cpp #include "log.h&quo…...

Maven 中央仓库操作指南

Maven 中央仓库操作指南 登录注册 在 Maven Central 登录(注册)账号。 添加命名空间 注册 通过右上角用户菜单跳转到命名空间管理页面: 注册命名空间: 填入你拥有的域名并注册: 刚提交的命名空间状态是Unverified…...

BUUCTF——RCE ME

BUUCTF——RCE ME 进入靶场 <?php error_reporting(0); if(isset($_GET[code])){$code$_GET[code];if(strlen($code)>40){die("This is too Long.");}if(preg_match("/[A-Za-z0-9]/",$code)){die("NO.");}eval($code); } else{highlight…...

clickhouse-1-特性及docker化安装

clickhouse-1-特性及docker化安装 1.​​核心特性​​1.1.列式存储与高效压缩​​1.2.​​向量化执行引擎​​1.3.分布式架构与高可用性​​1.4.多样化的表引擎​​1.5.实时处理能力​​2.安装2.1 拉取镜像2.2 创建容器3.连接4.使用4.1.创建数据库5.其他5.1 primary key5.2 ENG…...

Docker核心笔记

一、概述 1、架构 Docker容器基于镜像运行,容器共享宿主机的内核,不会加载额外内核,通过Namespaces(环境隔离)和Cgroups(资源控制)实现隔离,Cgroups会限容器使用资源并控制优先级和统计数据。隔离后的容器仅包含应用所需的用户态依赖 2、安装 安装先卸载再安装,使用的yum…...

log日志最佳实践

log日志最佳实践 1、占位符的使用2、延迟计算 1、占位符的使用 在进行日志打印的时候&#xff0c;推荐使用占位符进行字符串打印&#xff0c;而不是直接使用字符串拼接。原因&#xff1a; 这样可以避免不必要的字符串拼接。使用占位符时&#xff0c;实际字符串拼接由日志框架…...

FreeRTOS--消息队列

一、简介 消息队列是FreeRTOS中用于任务与任务或任务与中断之间数据交换的一种机制&#xff0c;采用FIFO&#xff08;先进先出&#xff09;方式管理数据&#xff0c;也可以采用LIFO&#xff08;后进先出&#xff09;方式。有点类似全局变量。 1.1 那为什么不直接使用全局变量&a…...

三步快速部署一个本地Windows/Linux大语言模型ChatGLM(环境配置+权重下载+运行)

前言&#xff1a; 最近刚拿到实验室一个装了3张3090显卡的服务器账号&#xff0c;感觉不用来霍霍有点浪费&#xff0c;于是有了部署一个大语言模型的想法&#xff0c;除去下载权重和传文件到服务器上可能也就用了十分钟不到&#xff08;这下看懂为啥python受众现在这么广了&…...

深入解析Spring Boot与Redis的缓存集成实践

深入解析Spring Boot与Redis的缓存集成实践 引言 在现代Web应用开发中&#xff0c;缓存技术是提升系统性能的重要手段之一。Redis作为一种高性能的内存数据库&#xff0c;广泛应用于缓存场景。本文将详细介绍如何在Spring Boot项目中集成Redis&#xff0c;并探讨其在实际开发…...

leetcode105.从中序与前序遍历序列构造二叉树:前序定根与中序分治的递归重建术

一、题目深度解析与核心挑战 在二叉树的重建问题中&#xff0c;"从中序与前序遍历序列构造二叉树"是一道考察递归分治思想的经典题目。题目要求我们根据一棵二叉树的前序遍历序列和中序遍历序列&#xff0c;重建出该二叉树的原始结构。这道题的核心难点在于如何利用…...

Python二级考试

目录 一、核心知识模块 1. 程序结构 2. 循环结构 3. 组合数据类型 4. 函数与模块 二、重点算法 1. 排序算法 2. 查找算法 三、文件操作 1. 基础文件处理 四、备考建议 五、典型易错点 以下是Python二级考试的复习要点整理&#xff0c;分为知识模块和备考建议&#…...

DeepSeek联网Google搜索引擎

目录&#xff1a; 1、使用背景2、实现代码3、Gradio 的 yield 机制 1、使用背景 比如所有易建联是什么时候退役的&#xff1f;使用大模型对这种实事回答不准确&#xff0c;需要通过联网搜索处理。 正确答案应该是2023年8月29日退役。 2、实现代码 # import gradio as gr# d…...

理论物理:为什么在极低温(接近绝对零度)时,经典理论失效?

经典理论应该是指经典力学和经典统计物理吧,比如牛顿力学、麦克斯韦-玻尔兹曼分布这些。而到了接近绝对零度的时候,物质的状态会发生什么变化呢?比如说超流性、超导性,或者玻色-爱因斯坦凝聚这些现象,这些在经典理论里好像没法解释。 因为在极低温下,粒子的热运动减弱,…...

奈雪小程序任务脚本

功能概述 该脚本用于自动完成奈雪点单小程序的每日任务&#xff0c;包括&#xff1a; 自动检测 Token 有效性自动签到&#xff08;如果未签到&#xff09;获取用户基础信息&#xff08;昵称、手机号&#xff09;查询当前奈雪币余额记录连续签到天数支持多账号执行&#xff0c…...

上海医日健集团物联网专利技术领跑智慧药房赛道

在智慧医疗蓬勃发展的浪潮中&#xff0c;上海医日健集团凭借其卓越的创新能力与强大的技术实力&#xff0c;在智慧药房领域崭露头角。集团自主研发的物联网专利技术&#xff0c;正以前所未有的优势&#xff0c;重塑智慧药房运营模式&#xff0c;引领行业迈向新的发展高度。 上…...

基于Java+MySQL实现(Web)图书借阅管理系统

图书借阅管理系统(前后台) 1 需求分析 图书借阅管理系统是模拟学校图书馆实现的一个具有前后台的 Web 系统.对于读者,能够提供全文检索,个性化推荐,借阅等功能.对于管理员,能够提供可视化数据分析,信息管理等功能. 2 技术栈 前端: Layui,jQuery,echarts 后端:Spring Boot,…...

SAR ADC的功耗设计

SAR ADC 由比较器、逻辑和DAC组成,功耗比可能是3:6:1,对于低功耗设计来说,我们需要尽量让DAC的功耗最小,这里来探讨一下CDAC的功耗计算方法。 CDAC从状态1切换到状态2时,需要从Vref buffer上抽拉电荷。C是状态2时连接Vref的总电容,V2就是状态2时接Vref的电容上的电压…...