四、Python第四课——Python中列表及其操作(增删改查)

目录

一、Python中的列表

1、列表的定义和赋值      

2、列表的使用

二、列表的“增删改查” 

1、列表中元素的增加

A、在列表尾添加元素

B、在列表中插入元素

2、列表中“元素的删除”

A、使用del语句删除元素

B、使用pop()函数删除元素

C、弹出列表中任何位置元素

D、根据值删除元素

3、列表中“元素的修改”

一、Python中的列表

1、列表的定义和赋值      

        Python中的列表本质上和C语言中的数组类似,如果你学过C语言,那么在理解这一概念时,就没有难度了。Python中的列表能够让你在一个地方存储成组的信息,可以说,这个是新手直接使用的最强大的功能之一了。(不是我说的,是某本Python书说的,不关我的事) 

        列表定义:由一系列按特定顺序排列的元素组成,其中的元素之间可以没有任何关系。初学者可以将列表理解为一个“箱子”,这个箱子什么都可以装,但是得有顺序 

        列表形式:用方括号“[ ]”来表示列表,并用逗号来分割其中的元素。例如:

people=['uncle','father','mother','grandmother','teacher']
print(people)

注意到上图中的输出,没学过编程语言的人可不希望看到有方括号的出现,那么此时要想按照“常理”输出的话,就得访问列表元素了。说白了,其实就是要告诉计算机你要操作的元素在哪?

        前面我们介绍了“列表是有序集合”,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python解释器即可。刚才也提到Python程序就像我们的“新家”一样,有很多“箱子”,那么要想访问准确,就得说出箱子名称,也就是“列表名称”和“该元素在列表中的位置”.如下代码所示:

people=['uncle','father','mother','grandmother','teacher']#定义列表
print(people[1])#输出位置为1的元素
print(people[1].title())#输出的单词开头大写
print(people[1].upper())#输出的单词大写
print(people[1].lower())#输出的单词小写,用了前面学的字符串函数,温故知新!

       通过观察可以看出,Python中列表的“索引”不是从“1”开始的,而是从“0”开始的,这和其他编程语言是相同的,例如C语言中的数组下标。另外,Python还为访问最后一个列表元素提供了一种特殊语法,我这里称为“负索引法”:列表下标是“-1”,则访问列表倒数第一个元素;列表下标是“-2”,则访问列表倒数第二个元素;以此类推!当列表为空时,这种访问最后一个元素的方式会导致错误。

 至此列表的定义和赋值就结束了。

2、列表的使用

 列表的使用很简单,我们用两行代码来说明:

people=['uncle','father','mother','grandmother','teacher']#定义列表
messgae=people[2]+" "+"is "+people[1]+"'s "+"wife"
print(messgae.title())

二、列表的“增删改查” 

       列表是变量的集合,可以说是一个“大变量”。既然是变量,那么它就会随着程序的运行等进行变化。那么,这就涉及到列表的增删改查了!“查”其实就是上面介绍的访问的意思。能访问,说明存在;不能,则说明不存在。这里只是按照数据库管理的术语命名标题了!

1、列表中元素的增加

列表增加的方法有以下2种:在列表尾添加元素,在列表中插入元素。

A、在列表尾添加元素

这是最简单的方式了,用代码说明:

people=['uncle','father','mother','grandmother','teacher']#定义列表
people.append("wife")#用append()方法将元素“wife”添加到列表末尾,并且不影响列表其他元素。
print(people)

       函数append(),可以很方便的在列表末尾添加元素,这就可以动态的创建列表了。所谓“动态”,是指可以先定义一个空的列表,再使用若干append()语句往列表里添加元素,例如下面一段程序:

people_1=[]#定义列表1
people_2=['uncle','father','mother','grandmother','teacher','wife']#定义列表2
people_1.append('uncle')
people_1.append('father')
people_1.append('mother')
people_1.append('grandmother')
people_1.append('teacher')
people_1.append("wife")
print(people_1)
print(people_2)

       这种动态添加元素的方法很常用,在写代码的时候,不知道列表中该存储哪些数据,但是随着程序的编写,以上内容逐渐明了,则可以使用append(),为列表“添砖加瓦”。

B、在列表中插入元素

插入的英文单词“insert”,则是“在列表中插入元素的”函数名。与“向列表末尾添加元素”不同,一个列表只有一个末尾,即前者添加元素的位置是确定的,但是后者要在列表任意位置添加元素。由此,我们在使用本方法时,除了要说明添加的具体元素是什么外,还需指明添加的位置。例如:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定义列表2
print(people_2)
people_2.insert(3,"grandfather")
print(people_2)

插入详解:函数insert()在位置3处添加空间,将“grandfather”存储到这个新的空间,并将之后所有的元素右移一个位置!

2、列表中“元素的删除”

 删除列表元素的方法有四种。

A、使用del语句删除元素

如果知道要删除的元素在列表中的位置,则可以用del语句删除元素。代码举例:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定义列表2
print(people_2)
del people_2[1]
print(people_2)
del people_2[1]
print(people_2)

在上述示例中,一旦使用del语句删除列表中的元素,用户就无法访问了。

B、使用pop()函数删除元素

        学过C语言的同学可能对这个函数不陌生,因为在栈的操作中有这么一个函数,用于将栈顶元素弹出栈!。而在Python中,可以将列表类比成一个栈(给没学过C语言的科普一下“栈”这个名词:栈就像一个水杯(只有一个口),有一定的大小,里面可以装“元素”,遵循“先进后出”的原则,即如果把所有元素都“入栈”,再“出栈”,那么最先进入的元素,在出栈时,总是最后出来。)在Python中,此方法的默认效果就是:删除栈顶元素。对应到列表中,就是删除列表表尾元素。

        而本方法适用于:要将元素从列表中删除,但是还要接着使用它的值。(我个人感觉pop()方法只能是称之为移除,因为在使用本方法时,在大多数情况下,只是把某个元素用另一个变量保存起来)例如,你在CF中杀死一名敌人,那么游戏系统就需要将其从本轮游戏存活者的名单中删掉,同时还需要使用这名敌人的名字,并在消息栏中显示“XXX被你击毙”的消息。

用代码说明:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定义列表2
print(people_2)#打印列表2
poped_1=people_2.pop()#删除列表表尾元素,并将其赋值给poped_1
print(people_2)#打印列表2,显示原表尾元素已被删除
print(poped_1)#打印弹出的元素,表明可以使用

C、弹出列表中任何位置元素

    在尝试B方法删除元素时,细心的同学可能就会发现,可以在pop()函数的括号里加上参数。那么这个参数就可以写成是列表元素的位置,从而达到“弹出列表中任何位置元素”的目的。

代码说明:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定义列表2
print(people_2)#打印列表2
poped_1=people_2.pop(1)#删除列表位置1上的元素,并将其赋值给poped_1
print(people_2)#打印列表2,显示原表位置为1的元素已被删除
print(poped_1)#打印弹出的元素

 

以上三种方法大致可以归类为“在知道元素位置的情况下而进行的删除操作”那么该如何选择删除方法呢?就看你在从列表中删除某一元素后,是否还要使用该元素。使用,则选择pop();永不再用,选择del语句。

D、根据值删除元素

在未知待删元素位置的情况下,仅凭待删元素的值,也可使用remove()函数完成删除操作。当然,此种方法删除的元素依然可以在使用,只要提前“备份”。这里需要注意的是:函数remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环结构来判断是否删除了所有这样的值。

代码举例:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定义列表2
print(people_2)#打印列表2
people_2.remove('teacher')
print(people_2)#打印列表2,表明删除成功

对比学习,可以使我们的印象深刻:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定义列表2
print(people_2)#打印列表2,显示当前列表有的元素,与下文删除元素后做对比
beifen_1=people_2[0]#也可以是beifen_1="uncle"
#使用A方法删除列表任意元素
del people_2[0]#删除元素
print(people_2)#打印目前列表中的所有元素
print(beifen_1)#打印备份1中的元素
people_2.insert(0,beifen_1)#把刚才删除的元素再补充回去,方便使用另一种删除方法
print("\n")#使用B方法删除列表表尾元素
print(people_2)#打印列表2,显示当前列表有的元素,与下文删除元素后做对比
beifen_1=people_2.pop()#备份删除的元素,同时删除元素
print(people_2)#打印目前列表中的所有元素
print(beifen_1)#显示删除的元素
people_2.append(beifen_1)#把刚才删除的元素再补充回去,方便使用另一种删除方法
print("\n")#使用C方法删除列表任意元素
print(people_2)#打印列表2,显示当前列表有的元素,与下文删除元素后做对比
beifen_1=people_2.pop(0)#备份删除的元素,同时删除该元素
print(people_2)#打印目前列表中的所有元素
print(beifen_1)#显示删除的元素
people_2.insert(0,beifen_1)
print("\n")#使用D方法删除列表任意元素
print(people_2)#打印列表2,显示当前列表有的元素,与下文删除元素后做对比
beifen_1="mother"#备份删除的元素
people_2.remove("mother")
print(people_2)#打印目前列表中的所有元素
print(beifen_1)#显示删除的元素
people_2.insert(0,"mother")
print("\n")#是否可以单独使用pop()函数?
print(people_2)#打印列表2,显示当前列表有的元素,与下文删除元素后做对比
people_2.pop(0)#删除表首元素
print(people_2)#显示当前列表元素

 

删除方法小结:

       从上面一段综合代码可以看出,删除列表中某元素时,是需要一定信息的:该元素是什么或者该元素位于列表的哪个位置。既然知道这些信息,那么我们完全可以定义一个变量,将要删除的元素备份起来,再执行删除。也就是说,以上删除语句在我个人看来是一样的功能“将列表中的某一元素删除”,而不用区别到底该使用哪种方法。以上在介绍各个方法时,也只是便于大家区分和识记。根本不需要根据“删除的元素是否要再次使用而选择调用哪个删除语句”

3、列表中“元素的修改”

 修改列表中的元素与访问列表元素类似。要修改列表元素,就得指定列表名、要修改元素的位置以及该元素的新值。

代码说明:

people_2=['uncle','father','mother','grandmother','teacher','wife']#定义列表2
print(people_2)
people_2[0]="policeman"#修改语句
print(people_2)

元素的修改其实就是列表元素的再一次赋值!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五、Python第五课——Python中组织列表的相关函数

目录 一、用sort()函数对列表进行永久排序 二、用sorted()函数对列表进行临时排序 三、用reverse()函数对列表进行列表原始排序的逆序输出 四、使用len()函数确定列表长度 创建列表后,内部的元素逐渐增多,其排列顺序也是无法预测的,因为…

如何正确下载、安装Codeblocks?

目录 一、Codeblocks的下载 二、Codeblocks的安装 三、Codeblocks的运行 相信很多同学在初学C语言时都会选择一个短小精悍的代码编辑器,如CodeBlocks(不说别的了,直接切入正题)。 在2020年(今年)3月份-…

Python:创建列表,其中包含数字1-1000000,为什么Pycharm控制台结果显示不完整?

目录 一、问题描述(寻找解决方法的同学直接看“标题二”) 二、解决办法 一、问题描述(寻找解决方法的同学直接看“标题二”) 在学习Python过程中遇到一个这样的问题,也算是一个小BUG吧。题目大意是这样的&#xff…

六、Python第六课——Python中的for循环及数字列表

目录 一、Python中的for循环 1、for循环语句的声明。 2、for循环缩进常见问题 二、数字列表 1、函数range() 2、使用range()函数创建数字列表 3、使用一系列函数处理数字列表(统计) 4、列表解析(生成列表的简洁方法) 一…

七、Python第七课——有关列表的二三事(切片、切片的遍历和复制)

目录 一、切片 二、遍历切片 三、列表的复制 一、切片 此前,我们学习了如何访问单个列表以及如何处理列表中的所有元素,那么我们如何处理列表中的部分元素呢?这就引出一个概念“切片” 。我们可以把列表看成是面包,“切片”…

八、Python第八课——元组与列表、代码格式

(请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目录 一、元组的定义 二、元组的遍历 三、代码格式 一、元组的定义 1、元组:不可变的列表称为元组。这个是相对于普通列表而言的,普通列表…

九、Python第九课——Python中的if语句与运用

(请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目录 一、if语句 1、检查变量存储的值是否相等 2、判定字母或字符串时区别大小写 3、检查多个条件 4、检查特定值是否在列表中 二、if-else语句和if-elif-el…

十、Python第十课——字典的些许知识(重点)

(请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目录 (请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 初识字典 1、创建字典 2、字典的“增删改查” …

百度地图API如何申请?(自认为比较详细,如解决了你的问题请收藏、点赞、关注)

(请先看置顶博文)本博打开方式,请详读_liO_Oil的博客-CSDN博客_怎么把androidstudio卸载干净 注意:自己申请的AK要保存好,最好不要外借,避免不必要的麻烦!(写在前面) 目…

PythonPyqt5项目开发完成后如何使用pyinstaller打包——以Pycharm编辑器为例(目前为止最正确的版本,成功打包日期为2020.11.26)

(请先看置顶博文)本博打开方式,请详读_liO_Oil的博客-CSDN博客_怎么把androidstudio卸载干净 最近用Python开发了一个可视化界面,开发过程如鱼得水,几乎没有BUG出现(项目简单)。但是在临近交付时…

十一、Python第十一课——用户输入和另一种循环(While)

(请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 学了这么久的Python,大家肯定会好奇,不是说机器学习吗?不是人机交互吗?不是人工智能吗?怎么我学了Python都十…

如何让新创建的Python文件自动生成作者信息等内容(以Pycharm为例)

(请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 打开Pycharm软件后,点击“File”,然后点击“Settings”,就会出现下面截图界面:然后按照箭头所指,在对应位置…

如何将谷歌浏览器的背景色(包括显示的网站界面等)全部调为黑色?2020.12.28

(请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 因为电脑显示器正对窗户的原因,平时为了透气通风不能使用遮光帘,所以我将整个电脑的所有软件的主题色设为黑色,这样能降低一些光的…

Windows 10如何消除文件夹右上角的“相对箭头”?

(请先看置顶博文)本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 整理笔记本电脑时发现&#xff0…

目标检测第1步:如何在Windows 10下安装MiniConda?

(请先看置顶博文)本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 目录 一、Conda是什么&#xff…

十二、Python第十二课——函数

(请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目录 (请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目录 目录 (请先看置顶博文&#xff…

目标检测第2步:如何在Windows 10下安装Anaconda?

(请先看置顶博文)本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 想要学习目标检测的朋友可能会发…

目标检测第3步:如何在Windows 10系统下安装CUDA(更新时间2022.03.22)

(请先看置顶博文)本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 目录 一、自检 1、查看PC是否…

目标检测第5步:如何在Windows 10系统下,搭建YOLOv5(5.0)环境?保姆级,没有人比这个更详细了(更新时间2022.3.22)

(请先看置顶博文)本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 目录 一、安装Anaconda或Minic…

如何将Word与Endnote再次相互关联?

(请先看置顶博文)本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 Endnote是每一个科研人员都接触…