Python列表操作指南:索引、切片、遍历与综合应用
文章目录
- 列表
- 简介
- 创建列表
- 索引和切片
- 列表的长度
- 列表的拼接和重复
- 检查元素是否存在
- 列表的方法
- index() 方法
- count() 方法
- 列表的修改和删除
- 修改元素
- 删除元素
- 列表的排序和反转
- 添加元素
- 列表的拷贝
- 列表的遍历
- 列表的切片
- 列表的嵌套
- 列表推导式
- python精品专栏推荐
- python基础知识(0基础入门)
- python爬虫知识
列表
简介
列表(List)是Python中最常用的数据结构之一,它可以存储多个元素,并且支持对元素的索引和切片操作。本文将介绍列表的基本操作和常用方法。
创建列表
通过方括号 [] 来创建一个列表,可以是空列表或包含元素的列表。例如:
my_list = [] # 创建一个空列表my_list = [10] # 创建一个只包含一个元素的列表my_list = [10, 20, 30, 40, 50] # 创建一个包含多个元素的列表
索引和切片
列表中的元素按照插入顺序存储,并且每个元素都有一个索引,索引从0开始计数。可以使用索引来获取列表中的元素,也可以使用切片来获取子列表。
示例代码:
my_list = [10, 20, 30, 40, 50]# 通过索引获取元素
print(my_list[0]) # 输出:10
print(my_list[4]) # 输出:50# 使用切片获取子列表
print(my_list[1:4]) # 输出:[20, 30, 40]
列表的长度
使用 len() 函数可以获取列表中元素的个数,即列表的长度。
示例代码:
my_list = [10, 20, 30, 40, 50]
print(len(my_list)) # 输出:5
列表的拼接和重复
使用 + 可以将两个列表拼接为一个列表,使用 * 可以将列表重复指定的次数。
示例代码:
list1 = [1, 2, 3]
list2 = [4, 5, 6]new_list = list1 + list2
print(new_list) # 输出:[1, 2, 3, 4, 5, 6]repeated_list = list1 * 3
print(repeated_list) # 输出:[1, 2, 3, 1, 2, 3, 1, 2, 3]
检查元素是否存在
使用 in 和 not in 可以检查指定元素是否存在于列表中。
示例代码:
stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']print('牛魔王' in stus) # 输出:False
print('孙悟空' not in stus) # 输出:False
列表的方法
列表提供了许多常用的方法,可以对列表进行增删改查等操作。
index() 方法
index() 方法用于获取指定元素在列表中第一次出现的索引,可以指定起始位置和结束位置进行查找。
示例代码:
stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']print(stus.index('沙和尚')) # 输出:2
print(stus.index('沙和尚', 3, 6)) # 输出:3# 如果要获取列表中没有的元素,会抛出异常
# print(stus.index('牛魔王')) # 抛出 ValueError 异常
count() 方法
count() 方法用于统计指定元素在列表中出现的次数。
示例代码:
stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精', '沙和尚', '沙和尚']print(stus.count('沙和尚')) # 输出:3
列表的修改和删除
修改元素
通过索引可以修改列表中的某个元素的值。
示例代码:
my_list = [10, 20, 30, 40, 50]my_list[2] = 35
print(my_list) # 输出:[10, 20, 35, 40, 50]
删除元素
可以使用 del 关键字或 pop() 方法删除列表中的元素。
使用 del 关键字:
示例代码:
my_list = [10, 20, 30, 40, 50]del my_list[2]
print(my_list) # 输出:[10, 20, 40, 50]
使用 pop() 方法:
pop() 方法用于删除指定索引的元素,并返回被删除的元素的值。如果不指定索引,默认删除最后一个元素。
示例代码:
my_list = [10, 20, 30, 40, 50]removed_element = my_list.pop(2)
print(removed_element) # 输出:30
print(my_list) # 输出:[10, 20, 40, 50]removed_element = my_list.pop()
print(removed_element) # 输出:50
print(my_list) # 输出:[10, 20, 40]
列表的排序和反转
可以使用 sort() 方法对列表进行排序,使用 reverse() 方法进行反转。
示例代码:
my_list = [3, 1, 4, 2, 5]my_list.sort()
print(my_list) # 输出:[1, 2, 3, 4, 5]my_list.reverse()
print(my_list) # 输出:[5, 4, 3, 2, 1]
添加元素
使用 append() 方法可以在列表末尾添加一个元素,使用 insert() 方法可以在指定索引位置插入一个元素。
示例代码:
my_list = [10, 20, 30]my_list.append(40)
print(my_list) # 输出:[10, 20, 30, 40]my_list.insert(1, 15)
print(my_list) # 输出:[10, 15, 20, 30, 40]
列表的拷贝
在Python中,列表是可变对象,当将一个列表赋值给另一个变量时,实际上是将列表的引用赋给了新的变量。如果修改其中一个变量的值,另一个变量也会受到影响。
为了避免这种情况,可以使用 copy() 方法或切片操作来创建一个列表的副本。
示例代码:
my_list = [10, 20, 30]
copy_list = my_list.copy()
slice_list = my_list[:]my_list[0] = 5print(copy_list) # 输出:[10, 20, 30]
print(slice_list) # 输出:[10, 20, 30]
这样,修改原列表后,副本列表不会受到影响。
当然,还有更多关于列表的内容可以继续介绍。
列表的遍历
可以使用循环来遍历列表中的所有元素,并对每个元素进行操作。
示例代码:
stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧']# 使用 for 循环遍历列表
for stu in stus:print(stu)# 使用 while 循环遍历列表
i = 0
while i < len(stus):print(stus[i])i += 1
列表的切片
除了获取子列表之外,切片操作还可以修改和删除列表的元素。
示例代码:
my_list = [10, 20, 30, 40, 50]# 修改切片中的元素
my_list[1:4] = [25, 35, 45]
print(my_list) # 输出:[10, 25, 35, 45, 50]# 删除切片中的元素
my_list[1:4] = []
print(my_list) # 输出:[10, 50]
列表的嵌套
列表可以包含其他列表作为元素,形成嵌套结构。
示例代码:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]print(matrix[0]) # 输出:[1, 2, 3]
print(matrix[1][2]) # 输出:6
列表推导式
列表推导式是一种简洁创建列表的方式,可以使用循环和条件语句来创建列表。
示例代码:
# 创建一个包含1到10的平方的列表
squares = [x**2 for x in range(1, 11)]
print(squares) # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]# 创建一个只包含偶数的列表
even_numbers = [x for x in range(1, 11) if x % 2 == 0]
print(even_numbers) # 输出:[2, 4, 6, 8, 10]
python精品专栏推荐
python基础知识(0基础入门)
【python基础知识】0.print()函数
【python基础知识】1.数据类型、数据应用、数据转换
【python基础知识】2.if条件判断与条件嵌套
【python基础知识】3.input()函数
【python基础知识】4.列表和字典
【python基础知识】5.for循环和while循环
【python基础知识】6.布尔值和四种语句(break、continue、pass、else)
【python基础知识】7.实操-用Python实现“文字PK”小游戏(一)
【python基础知识】7.实操-用Python实现“文字PK”小游戏(二)
【python基础知识】8.编程思维:如何解决问题-思维篇
【python基础知识】9.函数的定义和调用
【python基础知识】10.用函数编写程序 - 实操篇
【python基础知识】10.用Python实现石头剪刀布小游戏-函数实操篇
【python基础知识】11.如何debug -常见报错原因及排查思路 - 思维篇
【python基础知识】12.类与对象(一)
【python基础知识】12.类与对象(二)
【python基础知识】13.类与对象(三)
【python基础知识】13.类与对象(四)
【python基础知识】14.图书管理系统的搭建(类与对象实操)
【python基础知识】15.编码基础知识
【python基础知识】16.文件读写基础及操作
【python基础知识】16.“古诗默写题”的python实现(文件读写和编码-实操篇)
【python基础知识】17.模块的概念以及如何引入
【python基础知识】18.实操-使用python自动群发邮件
【python基础知识】19.产品思维以及流程图的使用 - 思维篇
【python基础知识】20.“午饭吃什么”的python实现(产品思维-实操篇)
【python基础知识】21.高效偷懒的正确打开方式-毕业篇
【python文件处理】CSV文件的读取、处理、写入
【python文件处理】Excel自动处理(使用 openpyxl)
【python文件处理】-excel格式处理
python爬虫知识
【python爬虫】1.爬虫基础知识
【python爬虫】2.网页基础知识
【python爬虫】3.爬虫初体验(BeautifulSoup解析)
【python爬虫】4.爬虫实操(菜品爬取)
【python爬虫】5.爬虫实操(歌词爬取)
【python爬虫】6.爬虫实操(带参数请求数据)
【python爬虫】7.爬到的数据存到哪里?
【python爬虫】8.温故而知新
【python爬虫】9.带着小饼干登录(cookies)
【python爬虫】10.指挥浏览器自动工作(selenium)
【python爬虫】11.让爬虫按时向你汇报
【python爬虫】12.建立你的爬虫大军
【python爬虫】13.吃什么不会胖(爬虫实操练习)
【python爬虫】14.Scrapy框架讲解
【python爬虫】15.Scrapy框架实战(热门职位爬取)
【python爬虫】16.爬虫知识点总结复习
相关文章:
Python列表操作指南:索引、切片、遍历与综合应用
文章目录 列表简介创建列表索引和切片列表的长度列表的拼接和重复检查元素是否存在列表的方法index() 方法count() 方法 列表的修改和删除修改元素删除元素列表的排序和反转添加元素 列表的拷贝列表的遍历列表的切片列表的嵌套列表推导式 python精品专栏推荐python基础知识&…...
第15章_锁: MySQL并发访问相同记录以及从数据操作的类型划分锁(读锁、写锁)
事务的 隔离性 由这章讲述的 锁 来实现。 1. 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制. 在程序开发中会存在多线程同步的问题, 当多个线程并发访问某个数据的时候, 尤其是针对一些敏感数据(订单, 金额), 我们就需要保证这个数据在任何时刻最多只有一个线…...
PHP 排序函数使用方法,按照字母排序等操作
详解PHP排序方法使用 一、sort() 函数 用于对数组单元从低到高进行排序。 //数组 $data array(D,F,A,C,B); //排序 sort($data); //输出排版标签 echo "<pre>"; //打印数据 print_r($data);die;输出结果: 二、rsort() 函数 用于对数组单元从高到…...
windows本地验证码识别工具
windows本地验证码识别小工具 - 可以用在windows系统中,并可以集成在Java或python程序中 演示视频如下:可用于识别4-7位的字母数字组合的验证码(识别准确率在70% - 80%)。 验证码识别演示 本项目未开源,如需使用请联…...
修改图片尺寸的几个简单方法
修改图片尺寸的几个简单方法~~图片,是我们常用的文件格式,也是日常生活与工作中重要的文件。图片记录了非常多的元素和内容,其中不乏有工作上的内容,也有对一些日常生活的记录。所以说,图片文件对我们来说是非常重要的…...
三、GoLang字符串的基本操作
一、转义符是什么? 转义字符意义\n换行,将当前位置移动到下一行开头\r回车,将当前位置移到本行开头\t相当于一个Tab键\\代表一个反斜线“\”\"代表一个双引号字符 代码实战 package mainimport "fmt"/* *字符串基本用法 */ func main…...
基于vue-cli创建后台管理系统前端页面——element-ui,axios,跨域配置,布局初步,导航栏
目录 引出安装npm install安装element-ui安装axios 进行配置main.js中引入添加jwt前端跨域配置 进行初始布局HomeView.vueApp.vue 新增页面和引入home页面导航栏总结 引出 1.vue-cli创建前端工程,安装element-ui,axios和配置; 2.前端跨域的配…...
在 ubuntu20.04 上安装 Pytorch
参考资料:https://www.linode.com/docs/guides/pytorch-installation-ubuntu-2004/ sudo apt update sudo apt install nvidia-cuda-toolkit (3G) mkdir anaconda cd ~/anaconda wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh chmod …...
远程恋爱网站部署秘籍——群晖虚拟机助ni秀恩爱
文章目录 前言1. 安装网页运行环境1.1 安装php1.2 安装webstation 2. 下载网页源码文件2.1 访问网站地址并下载压缩包2.2 解压并上传至群辉NAS 3. 配置webstation3.1 配置网页服务3.2 配置网络门户 4. 局域网访问静态网页配置成功5. 使用cpolar发布静态网页,实现公网…...
vscode c++解决包含头文件红色波浪线问题
安装c/c插件后,按ctrlshiftp, 点击打开了c_cpp_properties.json文件,对其中的IncludePath进行编辑,示例如下: "includePath": ["${workspaceFolder}/**","${workspaceFolder}/include/**&q…...
PostgreSQL docker compose安装配置
docker-compose.yml如下: version: 3services:postgres:image: postgres:15.4healthcheck:test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ]timeout: 45sinterval: 1…...
电脑文件批量重命名:高效操作技巧
随着时间的推移,我们积累的文件和文件夹数量越来越多,需要对它们进行合理的命名和管理,以便更方便地查找和利用。而文件批量重命名功能可以帮助我们更高效地管理文件夹。下面介绍五种方式,帮助你更好地利用文件批量重命名工具&…...
c高级day4(shell)
实现一个对数组求和的函数,数组通过实参传递给函数写一个函数,输出当前用户的uid和gid,并使用变量接收结果...
整十粉丝庆祝文章系列内容征集建议
亲爱的读者们,大家好! 作为一名文章作者,我深知没有读者的支持和喜爱,我的文字就只是无意义的文字堆积。因此,为了庆祝与感谢大家长久以来的支持,我准备举办一场特别的活动——粉丝庆祝文章系列内容征集建…...
两数乘积:输出1~100整数乱序列表中两数乘积是目标整数的最小下标对
给定1~100整数的乱序列表,查找并输出乘积是用户指定整数的两个整数下标对。 (本笔记适合熟练掌握Python列表的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教…...
【JavaSE】面试01
文章目录 1. JDK、JRE、JVM之间的关系2. 补充3. 面试题:重载和重写的区别?4. super和this5. (重点!!)若父类和子类均有静态代码块、实例代码块以及无参构造方法,则继承关系上的执行顺序…...
Elasticsearch(二)kibana数据检索
Elasticsearch(二)kibana数据检索 1.简述 有了数据学习使用kibana调用api检索数据,熟练kibana操作后再进一步使用spring data。 term用于keyword类型数据精准查询,类似mysqlmatch 用于text类型数据分词查询,倒排索引 首先针对keyword文本…...
JavaScript编程语法作业
目录 目录 前言 思维导图 1,作业资源 2,if语句练习 2.1代码解读: 2.2,结果展示: 3,switch语句练习 3.1,代码解读: 3.2,结果展示: 4.while循环练习 4.1,代码解读: 4.2.结果展示: 5.do-while循环练习 5.1,代码解读: 5.2,结果展…...
服务器中了Malloxx勒索病毒应该怎么办?勒索病毒解密,数据恢复
Malloxx勒索病毒是一种近年来发现的电脑病毒,它以加密用户电脑中的重要文件数据为手段,威胁用户并以此勒索钱财。这种病毒的传播方式多种多样,可以通过电子邮件、恶意网站、网络下载等方式进行传播。一旦电脑被感染,病毒会立即锁住…...
如何实现Spring的事务管理功能:@Transactional声明式事务
在Spring MVC中处理SQL事务,可以使用Spring的事务管理功能来实现。Spring提供了多种配置和编程方式来管理事务,以下是一种常见的基于注解的方法来处理SQL事务: 1. 配置数据源和事务管理器:首先,您需要配置数据源和事务…...
基于Arduino Pro Micro的薄膜键盘矩阵改造:DIY低成本模拟飞行外设
1. 项目概述:为Falcon BMS打造一款经济型多功能按键面板如果你是一名《Falcon BMS》的飞行模拟爱好者,同时又对硬件DIY抱有热情,那么你很可能和我一样,对市面上那些动辄数百甚至上千元的专业模拟飞行外设感到望而却步。尤其是像F-…...
珠海市高新技术企业资质认定流程及时间
珠海市暂未发布2026年高企申报通知,往年高新技术企业认定工作通常于每年5月至9月分批开展,目前非申报窗口期,建议您提前准备以备下一轮申报。根据往年(如2025年)的受理安排,申报主要通过线上平台进行&#…...
混合人工智能架构可以将神经形态系统转变为可靠的发现机器。
基于ON-OFF神经元的高阶伊辛机架构。图片来源:Nature Communications (2026)。DOI:10.1038/s41467-026-71937-4来源:https://techxplore.com/news/2026-05-hybrid-ai-architecture-neuromorphic-reliable.html主导世界的AI机器可以分为三大类…...
使用 Taotoken 聚合 API 一周后的延迟与稳定性实际体验分享
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用 Taotoken 聚合 API 一周后的延迟与稳定性实际体验分享 1. 项目背景与接入动机 最近在开发一个需要调用多种大语言模型的个人…...
FPGA频率测量实战:从原理到实现,三种方法深度解析与选型指南
1. FPGA频率测量的工程意义与挑战 在数字电路设计中,频率测量就像给信号"把脉",是评估系统健康状况的基础操作。想象你正在开发一款智能温控器,需要精确测量风扇转速信号;或者设计无线通信模块,要监控本振频…...
GPU资源利用率深度解析与优化实践
1. GPU资源利用率的核心概念与测量方法在HPC(高性能计算)领域,GPU资源利用率是评估计算效率的黄金指标。不同于简单的"使用率"概念,真正的GPU利用率是一个多维度的综合指标,涉及计算核心、内存控制器、缓存体…...
droidrun-agent:基于MCP协议连接AI智能体与安卓设备的自动化桥梁
1. 项目概述:当AI助手需要“动手”时在AI Agent(智能体)领域,我们常常遇到一个瓶颈:模型可以生成完美的计划、写出漂亮的代码,但它如何与真实世界交互,尤其是如何操作一台物理设备?比…...
终极指南:如何用ChatLaw构建你的免费中文法律AI助手
终极指南:如何用ChatLaw构建你的免费中文法律AI助手 【免费下载链接】ChatLaw ChatLaw:A Powerful LLM Tailored for Chinese Legal. 中文法律大模型 项目地址: https://gitcode.com/gh_mirrors/ch/ChatLaw 面对复杂的法律问题,你是否…...
从零搭建VGG16:深入解析网络架构与PyTorch实战
1. VGG16网络架构解析 VGG16作为卷积神经网络发展史上的里程碑,其核心设计理念至今仍影响着现代深度学习模型。我第一次接触这个网络时,被它简洁优雅的结构深深吸引——全部使用33小卷积核堆叠,配合22最大池化,这种设计就像用乐高…...
EmbBERT架构解析:面向TinyML的革新设计与优化
1. EmbBERT架构解析:面向TinyML的革新设计在边缘计算设备上部署自然语言处理模型一直面临内存和计算资源的双重限制。传统BERT模型即使经过压缩,其2MB版本在TinyNLP基准测试中平均准确率仅为83.93%,且激活内存占用高达1.5MB。EmbBERT通过三大…...
