Python--列表简介

news/2024/9/17 7:52:44/ 标签: python, 开发语言

列表是什么

列表让你能够在⼀个地方存储成组的信息,其中既可以只包含几个元素,也可以包含数百万个元素。列表是新手可直接使用的最强大的Python 功能之⼀。

列表(list)是一种可变的序列类型,用于存储一系列有序的元素。这些元素可以是任何类型,包括整数、浮点数、字符串、其他列表(即嵌套列表)等。列表是动态的,可以在运行时增加或删除元素。

用方括号([ ])表示列表,用逗号分隔其中的元素。

下面是⼀个简单的示例

students = ['刘备','曹操','孙权']  
print(students)  

1.访问列表元素

使用索引(从0开始)来访问列表中的元素。
例如输出第一个学生的姓名

students = ['刘备','曹操','孙权']
print(students[0])

通过索引获取列表元素时,只返回该元素,而不包括方括号[ ].

2.索引从0开始而不是1开始

在 Python 中,列表第一个元素的索引是 0,而不是 1,大多数编程语言都是如此 。

students = ['刘备', '曹操', '孙权']
print(students[0])  #输出第一个元素
print(students[1])  #输出第二个元素
print(students[2])  #输出第三个元素

python为访问最后的元素提供了一种特殊的语法。通过将索引指定为-1,可让 Python 返回最后⼀个列表元素:


students = ['刘备', '曹操', '孙权']
print(students[-1]) #访问最后一个元素

这种语法在不知道列表长度的情况下访问最后的元素非常好用。当然它也适用于其他负数索引,例如,索引 -2 返回倒数第⼆个元素,索引 -3 返回倒数第三个元素,依此类推。

students = ['刘备', '曹操', '孙权'] 
print(students[-1]) #访问倒数第一个元素 
print(students[-2]) #访问倒数第二个元素 
print(students[-3]) #访问倒数第三个元素 

-1索引表示倒数第1个元素,-2索引表示倒数第2个元素,…-n索引表示倒数第n个元素,因为-0就是0索引表示第1个元素。

3.使用列表中的各个值

你可以像使用其他变量⼀样使用列表中的各个值。例如,可以使用 f 字符串根据列表中的值来创建消息。
下面尝试从列表中提取第⼀个同学,并使用这个值创建⼀条消息:

nums = [1, 2, 3, 4, 5]
x = nums[0] + nums[-1]  #第1个元素+最后一个元素
print(x)

4.常见错误

在刚使用列表是容易出现索引错误,例如只有三个元素,却访问3号索引第四个元素

students = ['刘备', '曹操', '孙权']
print(students[3])

list index out of range : 列表索引超出范围

3.2 修改,添加和删除元素

列表(list)是一种可变的序列类型,这意味着列表创建后,将随着程序的运行修改,添加或者删除元素。
例如,你可能创建了⼀个游戏,要求玩家消灭从天而降的外星人。为此,可在开始时将外星人存储在列表中,每当有外星人被消灭时,将其从列表中删除,而每次有新的外星人出现时,将其添加到列表中。在整个游戏运行期间,外星人列表的长度将不断变化。

1.修改元素

通过列表名和索引指定具体元素,再指定该元素的新值。

列表名[索引] = 新值

students = ['刘备', '曹操', '孙权']
students[0] = '诸葛亮' #把第1个学生改为诸葛亮

2.添加元素

python提供多种在列表中添加元素的方式。

2.1 在列表末尾添加元素

使用追加append()方法将元素添加到列表末尾。

students = ['刘备', '曹操', '孙权']
print(students)
students.append('张飞') #在列表的末尾添加'张飞'
print(students)

append() 方法让动态创建列表易如反掌。你可以先创建⼀个空列表,再使用append() 添加元素。
这种创建列表的方式极其常见,因为经常要等程序运行后,你才知道在程序中需要存储哪些数据。

students = []  #创建一个空列表
#下面模拟程序运行中添加元素
students.append('刘备') #添加刘备到列表尾
students.append('曹操') #添加曹操到列表尾
students.append('孙权') #添加孙权到列表尾
students.append('张飞') #添加张飞到列表尾
print(students)

2.2 插入元素

使用insert() 方法可在列表指定的索引处插入新元素。

insert(索引,新元素)

students = ['刘备', '曹操', '孙权']
print(students)
students.insert(0, '张飞') #在列表的开头添加'张飞'
print(students)

3.删除元素

1.使用del删除元素
如果知道要删除的元素在列表中的位置,可使用del 语句:

students = ['刘备', '曹操', '孙权']
print(students)
del students[1] #删除曹操
print(students)

使用 del 语句删除了列表 students 中的第二个元素"曹操",结果如下:
使用 del 语句将元素从列表中删除后,你就无法再访问它了。

2.使用pop方法删除元素

pop(索引),删除索引位置的元素,不给索引则删除末尾元素
你如果只需要删除列表的末尾元素,可以使用pop函数。

students = ['刘备', '曹操', '孙权']
print(students)
s = students.pop() #不指定索引,删除的是最后一个 
print(students)
print(f"刚删除的学生是:{s}")

当然利用pop方法,也可以删除任意元素

students = ['唐僧', '孙悟空', '猪八戒','沙悟净']
print(students)
s = students.pop(1) #删除指定索引元素'孙悟空'
print(students)
print(f"刚删除的学生是:{s}")

pop删除的元素可以被变量接收然后再使用

该使用 del 语句还是 pop() 方法,下面是⼀个简单的判断标准:
如果要从列表中删除⼀个元素,且不再以任何方式使用它,就使用 del 语句;

如果要在删除元素后继续使用它,就使用 pop() 方法。

根据值删除元素

如果不知道删除值的索引位置,只知道要删除的元素的值,可使用 remove() 方法。
remove( 要删除的值 )

students = ['唐僧', '孙悟空', '猪八戒','沙悟净'] 
print(students) 
students.remove('猪八戒') 
print(students) 

注意:remove() 方法只删除第⼀个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环,确保将每个值都删除


本篇完!


http://www.ppmy.cn/news/1522179.html

相关文章

【全网首发】2024数学建模国赛C题39页word版成品论文【附带py+matlab双版本解题代码+可视化图表】

基于优化模型的农作物的种植策略 完整版成品py(matlab)代码解题在下面获取: 点击链接加入群聊【2024数学建模国赛资料汇总】:http://qm.qq.com/cgi-bin/qm/qr?_wv1027&klZncBILk30DuPRI1Bd8X-3Djv7ZVZyAv&authKeykKqNSS…

久久派安装启用USB摄像头(基于node-red)

久久派安装启用USB摄像头(基于node-red) 功能演示1、安装必要的节点2、程序讲解1、启动摄像头2、关闭摄像头3、获取久久派IP4、在UI界面显示摄像头内容5、摄像头抓拍 3、部署 文中所需网盘资料及讲解视频在文章末尾哦1。 本章使用的摄像头插件请参考久久…

4、Django Admin对自定义的计算字段进行排序

通常,Django会为模型属性字段,自动添加排序功能。当你添加计算字段时,Django不知道如何执行order_by,因此它不会在该字段上添加排序功能。 如果要在计算字段上添加排序,则必须告诉Django需要排序的内容。你可以通过在…

Qt/C++ 个人开源项目#串口助手(源码与发布链接)

一、项目概述 该串口助手工具基于Qt/C开发,专为简化串口通信调试与开发而设计,适合新手快速上手。工具具有直观的用户界面和丰富的功能,旨在帮助用户与串口设备建立可靠通信,便于调试、数据传输和分析。 二、主要功能 波特率&a…

Flutter集成Firebase中的 A/B Testing

前提 完成Flutter集成Firebase中的远程配置流程 A/B Test的使用流程 我们先通过远程配置设置变量,应用程序根据变量值展示不同的界面创建一个A/B Test实验,在实验中创建满足条件的用户才能加入到这个实验中,并且在A/B 实验中修改远程配置变…

shell 学习笔记:变量、字符串、注释

目录 1. 变量 1.1 定义使用变量 1.2 变量命名规则 1.3 只读变量 1.4 删除变量 1.5 变量类型 1.5.1 字符串变量 1.5.2 整数变量 1.5.3 数组变量 1.5.3.1 整数索引数组 1.5.3.2 关联数组 1.4 环境变量 1.5 特殊变量 2. 字符串 2.1 单引号字符串 2.2 双引…

使用NetBackup GUI 图形化进行oracle备份和恢复

转载 一、环境介绍: 这个实验都是在vmware workstation里完成的。由于NetBackup7只能装在64位的系统上,所以这里采用了64位的rhel5.5系统,以及oracle 10gr2 for linux_x64的软件包。数据库的数据文件存储在ASM中。安装rhel、oracle、netback…

C++字符串中的string类操作

愿我如星君如月,夜夜流光相皎洁。 ——《车逍遥篇》【宋】范成大 目录 正文: 主要特点: 基本操作: 代码演示: 总结: 今天我们接着上次的章节继续,这次我们来说一个为解决上个方法的缺陷而诞…

Linux 文件权限与属性管理

概述 Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux 对不同用户访问同一文件(包括目录文件)的权限做了详细的规定。 文件属性查看 在 Linux 中&#xff0…

目标检测-YOLOv3

YOLOv3介绍 YOLOv3 (You Only Look Once, Version 3) 是 YOLO 系列目标检测模型的第三个版本,相较于 YOLOv2 有了显著的改进和增强,尤其在检测速度和精度上表现优异。YOLOv3 的设计目标是在保持高速的前提下提升检测的准确性和稳定性。下面是对 YOLOv3 …

牛客(除2!)

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 给一个数组,一共有 n n\ n 个数。 你能进行最多 k k\ k 次操作。每次操作可以进行以下步骤: 选择数组中的一个偶数 aia_iai​,将其变成 ai/2a_i/…

使用 JAXB 将内嵌的JAVA对象转换为 xml文件

使用 JAXB 将内嵌的JAVA对象转换为 xml文件 1. 需求2. 实现(1)FileDesc类(2)MetaFileXml类(3)生成对应的xml文件 1. 需求 获取一个目录下所有文件的元数据信息(文件名、大小、后缀等&#xff0…

“榆”您相约|遨游矿用煤安防爆手机助力煤矿作业安全增效

金秋九月结硕果,丹桂飘香迎盛会。2024年9月13日至15日,第十八届榆林国际煤炭暨高端能源化工产业博览会(以下简称“榆林国际煤博会”)即将在榆林会展中心盛大启幕。本次博览会以“能源新时代,低碳新榆林”为主题&#x…

uniapp / uniapp x UI 组件库推荐大全

在 uniapp 开发中,我们大多数都会使用到第三方UI 组件库,提起 uniapp 的UI组件库,我们最常使用的应该就是uview了吧,但是随着日益增长的需求,uview 在某些情况下已经不在满足于我们的一些开发需求,尽管它目…

pdf预览

使用pdfjs-dist完成pdf预览功能,注意版本号。 新版用了很多es新写法,好像更适合vue3使用,老项目识别不了其中的一些语法。我用的时候,先是报了 obj?.name这种语法的错误,解决之后又报其他错误。 npm install pdfjs-…

从材料到应用:螺杆支撑座材质选择的多样性与精准性!

支撑座是连接丝杆和电机的轴承固定座,其材料的选择直接影响使用效果。那么,大家知道螺杆支撑座常用的材质有哪些吗? 1、高碳钢:高碳钢因其高强度和良好的耐磨性,是螺杆支撑座制作中常用的材料。它能够很好地配合滚珠螺…

RLC(电阻、电感、电容)

RLC(电阻、电感、电容) 目录一、两个电阻(R1,R2),电容(C1,C2)的串联/并联公式?二、请画出这个1ms, 1V的Vin脉冲信号在Vout端的大致图像1.电路图2.…

【leetcode详解】考试的最大困扰度(滑动窗口典例)

实战总结: sum answerKey[right] c; 经典操作,将判断语句转化为0, 1接收来计数//大问题分解: 对T还是F做修改, 传参为c//滑动窗口: 遍历, 维护left& right指向 及 c的个数, 更新不知从何下手写代码时:考虑先写好第一次的&a…

猜测、实现 B 站在看人数

猜测、实现 B 站在看人数 猜测找到接口参数总结 实现 猜测 找到接口 浏览器打开一个 B 站视频,比如 《黑神话:悟空》最终预告 | 8月20日,重走西游_黑神话悟空 (bilibili.com) ,打开 F12 开发者工具,经过观察&#xf…

华为 HCIP-Datacom H12-821 题库 (7)

有需要题库的可以看主页置顶 V群仅进行学习交流 1.配置 VRRP 跟踪物理接口状态的命令是在华为设备上,以下哪一项是配置 VRRP 跟踪物理接口状态的命令? A、track vrrp vrid 1 interface GigabitEthernet0/0/0 B、vrrp vrid 1 track interface GigabitE…