首页 > 编程语言 >【python基础】复杂数据类型-列表类型(增删改查)

【python基础】复杂数据类型-列表类型(增删改查)

时间:2023-06-01 10:11:33浏览次数:50  
标签:删除 python 数据类型 元素 改查 列表 索引 所示 数据

1.初识列表(list)

列表由一系列按特定顺序排列的数据元素组成。可以将任何类型数据元素加入列表中,其中的数据元素之间没有任何关系。鉴于列表通常包含多个数据元素,给列表指定一个表示复数的名称是个不错的选择。
在python中,用方括号[]来表示列表,并用逗号来分隔其中的数据元素。编写程序如下所示
image
运行结果如下所示
image
我们可以发现,用print来输出列表类型的变量names,会将names列表的所有数据元素都输出出来。

2.访问列表

列表是有序集合,因此要访问列表的任何数据元素,只需将该数据元素的位置或索引告诉python即可。访问列表数据元素的语法格式,可指出列表的名称,再指出数据元素的索引,并将其放在方括号内,如下所示:
image
我们如果要输出第一个人的名字,也就是小明,抛开python规定,我们可编写如下程序,做个测试。
image
运行结果如下所示
image
我们发现运行结果和我们想的不一致,问题出在哪里呢,问题出在索引值上,我们现实中的第一个是索引1,但是在python中的第一个是索引0,所以我们这里要对应python的第一个索引的话应该是索引0,也就是names[0],将程序做如下修改
image
运行结果如下所示
image
索引详解图
image
python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让python返回最后一个列表元素。程序如下所示:
image
运行结果如下所示
image
这种语法很有用,因为经常需要在不知道列表长度的情况下访问最后的元素。这种约定也适用于其他负数索引。例如索引-2返回倒数第二个列表元素。
索引详解图
image

3.使用列表数据元素

可像使用其他变量一样使用列表中的数据元素,例如,可以使用字符串拼接根据列表中的数据元素来创建消息。
比如:向小红打招呼,询问已经学习python多长时间了,程序 如下所示
image
运行结果如下所示
image

4.修改列表数据元素

修改列表数据元素的语法与访问列表数据元素的语法类似。要修改列表数据元素,可指定列表名和要修改的数据元素的索引,再指定该数据元素的新值。
假设将第一个数据元素的姓名修改为小花,编写程序如下所示
image
运行结果如下所示
image
可以根据索引值修改任何列表数据元素的值,而不是仅仅第一个数据元素的值。

5.添加列表数据元素

python提供了多种在既有列表中添加新数据元素的函数

5.1在列表末尾添加数据元素(append函数)

在列表中添加新数据元素时,最简单的方式是将数据元素附加到列表末尾。
其语法格式:列表变量名.append(数据元素)
编写程序做如下所示:
image
运行结果如下所示
image
append()方法让动态地创建列表十分简单。例如,可以先创建一个空列表,再使用一系列的append()语句添加数据元素。编写程序如下所示:
image
运行结果如下所示
image
可以发现创建的列表与上面的一致。这种创建列表的方式极其常见,因为经常要等程序运行后,才知道在程序中需要存储哪些数据。

5.2在列表中插入数据

使用insert函数可在列表的任何位置添加新数据元素。为此,需要指定新数据元素的索引和值。
其语法格式为:列表变量名.insert(要插入的索引值,要插入的数据)
假设我们要将小黄插入到名字列表中索引第0个的位置,编写程序如下所示:
image
运行结果如下所示
image
由此可见,insert函数在将数据元素插入之后,其索引值和索引值之后的数据元素都将依次往后移1位。和现实中的插队类似。

6.删除列表数据元素

经常需要从列表中删除一个或多个数据元素。可以根据索引值或值来删除列表中的数据元素。

6.1关键字del

在python中,del关键字主要用于对象,也可以用于删除变量,删除列表变量或者列表的一部分等。对象的概念后期会再介绍
如果知道要删除的数据元素在列表中的索引值,可使用del关键字。
其语法格式:del 要删除的对象/变量/列表/列表部分
我们分别从删除列表单个数据元素,连续多个数据元素,列表变量来介绍

6.1.1删除单个列表数据元素

假设我们要把小明进行删除,我们发现小明所在的索引位置为0
于是编写程序如下所示:
image
运行结果如下所示
image

6.1.2删除连续多个列表数据元素

假设我们要把连续着的小明和小红同时删除,我们发现小明和小红所在的索引位置是0和1,集合上表示的话就是说0到2,但不包括2,这里结合后面说的截取列表,可以将要删除的数据元素,也就是把小明和小红放到一个截取的列表中,然后通过del进行删除,编写程序如下所示
image
输出结果上,就只剩下小黑和小白了。

6.1.3删除列表变量

假设我们要把列表变量删除,而不是清空列表。编写程序如下所示
image
通过上面的输出我们可以看到,程序报错了,错误在第4行,提示names没有被定义,也就是说names变量在输出之前已经不存在了,也就是我们通过del关键字删除了。经过del关键字删除的列表变量,之后就不能够被使用了。

6.2使用pop函数删除元素

有时候,要将数据元素从列表中删除,删除的同时,我们后续还需要使用它的值。比如,可能要将用户从活跃成员列表中删除,并将其加入到非活跃成员列表中。

6.2.1删除列表末尾数据元素

pop函数可删除列表末尾的数据元素,并能够接着使用它。pop源自这样的类比:弹出,列表就像一个栈,而删除列表末尾的数据元素相当于弹出栈顶元素。
其语法格式:列表变量名.pop()
假设我们要删除小白,然后输出小白已经被删除,编写程序如下所示:
image
运行结果如下所示
image
由此可见,pop函数是有返回值的。返回的是被删除的列表末尾元素。

6.2.2删除列表中任何位置处的数据元素

实际上,可以使用pop()来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。
其语法格式:pop(索引值)
编写程序如下所示
image
运行结果如下所示:
image
我们可以发现使用pop函数弹出指定索引位置的数据元素后,后面的数据元素依次前移1位。
注意:我们删除元素时,如果不确定使用del关键字还是pop函数,下面是一个简单的判断标准:如果要从列表中删除一个数据元素,且不再以任何方式使用它,就用del关键字;如果你要在删除元素后还想继续使用它,就使用pop函数。

6.3根据值删除数据元素

有时候,不知道要从列表中删除的值所处的索引值。而只知道要删除的数据元素的值,可使用remove函数
其语法格式:remove(数据元素值)
假设我们要删除小黑这个名字,编写程序如下所示
image
运行结果如下所示
image
我们可以发现,remove函数本身只是将数据元素根据值删除,但是因为我们知道数据元素的值,后期要是想着使用这个我们删除的值,我们可以先进行存储,然后在用到的地方,再进行调用。
注意:remove()方法只删除第一个与指定元素值相同的数据元素。如果要删除的数据元素可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。这会在后面进行介绍

标签:删除,python,数据类型,元素,改查,列表,索引,所示,数据
From: https://www.cnblogs.com/lbprogram/p/17441630.html

相关文章

  • 配置 Sublime Text 4 作为 R/Python IDE
    VScode太占用内存了,在作为RIDE的时候,经常后台有13个R的Front-end进程,再开启浏览器,浏览器一会就崩溃了。RStudio不是轻便IDE的第一选择。比来比去,就只有SublimeText。必须安装的SublimeText插件:SendCode、Terminus。配置SublimeText4作为RIDER已经安装并加入系统路径......
  • 【博学谷学习记录】超强总结,用心分享 | python基础学习(数据类型,运算符)
    【博学谷IT技术支持】基础数据类型Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建赋值方式直接赋值a=1#整型变量b=1.0#浮点型变量c='abc'#字符串多个赋值a=b=c=1a,b,c=1,2,3标准数据类型标准数据类型......
  • Python不同UTC时区时间转换
    Python不同UTC时区时间转换#时间转换->UTC+8,zone_code:旧的时区deftime_convert(old_date,zone_code):#UTC负时区对应的pytz可以识别的时区burden_timezone='Etc/GMT+'#UTC正时区对应的pytz可以识别的时区just_timezone='Etc/GMT-'#......
  • Python安装软件包报错 fatal error: Python.h: No such file or directory
    原因是我们安装的这个第三方库内含需要编译的调用pythonapi的c/c++文件,而linuxlinux发行版通常会把类库的头文件和相关的pkg-config分拆成一个单独的xxx-dev(el)包。以python为例,以下情况你是需要python-dev的:ubuntu下apt-getinstallpython-devapt-getinstallpython3-d......
  • neo4j,python,批量建立节点时,会重复建立相同名称节点。去重。
    前提经过度娘得知,可以使用第三方包去重,但只管去重,你后面关系乱了人家第三方包不管。=-=或者直接在neo4j里面使用数据库语言去重,但关系还是得重新建立。况且,我想用python去重。干货来了后来,我换了个思路,那么就是合并节点。(虽然跟去重差不多)但总归总做出来了使用NodeMatcher......
  • Python进行多输出(多因变量)回归:集成学习梯度提升决策树GRADIENT BOOSTING,GBR回归训练
    原文链接: http://tecdat.cn/?p=25939最近我们被客户要求撰写关于多输出(多因变量)回归的研究报告,包括一些图形和统计输出。在之前的文章中,我们研究了许多使用多输出回归分析的方法。在本教程中,我们将学习如何使用梯度提升决策树GRADIENTBOOSTINGREGRESSOR拟合和预测多输出回归......
  • Python基于粒子群优化的投资组合优化研究|附代码数据
    全文链接:http://tecdat.cn/?p=6811最近我们被客户要求撰写关于粒子群优化的研究报告,包括一些图形和统计输出。粒子群优化(PSO)在PSO中,群中的每个粒子表示为向量。在投资组合优化的背景下,这是一个权重向量,表示每个资产的分配资本。矢量转换为多维搜索空间中的位置。每个粒子也会记......
  • 简述Python的作用域以及Python搜索变量的顺序
    Python作用域简单说就是一个变量的命名空间。代码中变量被赋值的位置,就决定了哪些范围的对象可以访问这个变量,这个范围就是变量的作用域。在Python中,只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域。Python的变量名解析机制也称为LEGB法则:本地作用域(Local)→当前作......
  • Python3 环境下使用 MySQLdb 库
    方法一:可以使用mysqlclient库安装:pipinstallmysqlclient 可能还需要下面对应的库,或者其它库#apt-getinstallmysql-dev或者#yuminstallmysql-devel使用:importMySQLdb 方法二:使用pymsql,这个需要做程序改造了......
  • Python判断一个数据结构是否为空的方法
    《EffectivePython》,里面提到判断字符串或者集合是否为空的原则。意思是:不要通过取字符串或者集合的长度来判断是否为空,而是要用not关键字来判断,因为当字符串或集合为空时,其值被隐式地赋为False.test_str=''test_tuple=()test_list=[]test_dict={}test_set=set()ifnot(test......