1.初识列表(list)

列表由一系列按特定顺序排列的数据元素组成。可以将任何类型数据元素加入列表中,其中的数据元素之间没有任何关系。鉴于列表通常包含多个数据元素,给列表指定一个表示复数的名称是个不错的选择。

在python中,用方括号[]来表示列表,并用逗号来分隔其中的数据元素。编写程序如下所示



运行结果如下所示



我们可以发现,用print来输出列表类型的变量names,会将names列表的所有数据元素都输出出来。

2.访问列表

列表是有序集合,因此要访问列表的任何数据元素,只需将该数据元素的位置或索引告诉python即可。访问列表数据元素的语法格式,可指出列表的名称,再指出数据元素的索引,并将其放在方括号内,如下所示:



我们如果要输出第一个人的名字,也就是小明,抛开python规定,我们可编写如下程序,做个测试。



运行结果如下所示



我们发现运行结果和我们想的不一致,问题出在哪里呢,问题出在索引值上,我们现实中的第一个是索引1,但是在python中的第一个是索引0,所以我们这里要对应python的第一个索引的话应该是索引0,也就是names[0],将程序做如下修改



运行结果如下所示



索引详解图



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



运行结果如下所示



这种语法很有用,因为经常需要在不知道列表长度的情况下访问最后的元素。这种约定也适用于其他负数索引。例如索引-2返回倒数第二个列表元素。

索引详解图

3.使用列表数据元素

可像使用其他变量一样使用列表中的数据元素,例如,可以使用字符串拼接根据列表中的数据元素来创建消息。

比如:向小红打招呼,询问已经学习python多长时间了,程序 如下所示



运行结果如下所示

4.修改列表数据元素

修改列表数据元素的语法与访问列表数据元素的语法类似。要修改列表数据元素,可指定列表名和要修改的数据元素的索引,再指定该数据元素的新值。

假设将第一个数据元素的姓名修改为小花,编写程序如下所示



运行结果如下所示



可以根据索引值修改任何列表数据元素的值,而不是仅仅第一个数据元素的值。

5.添加列表数据元素

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

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

在列表中添加新数据元素时,最简单的方式是将数据元素附加到列表末尾。

其语法格式:列表变量名.append(数据元素)

编写程序做如下所示:



运行结果如下所示



append()方法让动态地创建列表十分简单。例如,可以先创建一个空列表,再使用一系列的append()语句添加数据元素。编写程序如下所示:



运行结果如下所示



可以发现创建的列表与上面的一致。这种创建列表的方式极其常见,因为经常要等程序运行后,才知道在程序中需要存储哪些数据。

5.2在列表中插入数据

使用insert函数可在列表的任何位置添加新数据元素。为此,需要指定新数据元素的索引和值。

其语法格式为:列表变量名.insert(要插入的索引值,要插入的数据)

假设我们要将小黄插入到名字列表中索引第0个的位置,编写程序如下所示:



运行结果如下所示



由此可见,insert函数在将数据元素插入之后,其索引值和索引值之后的数据元素都将依次往后移1位。和现实中的插队类似。

6.删除列表数据元素

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

6.1关键字del

在python中,del关键字主要用于对象,也可以用于删除变量,删除列表变量或者列表的一部分等。对象的概念后期会再介绍

如果知道要删除的数据元素在列表中的索引值,可使用del关键字。

其语法格式:del 要删除的对象/变量/列表/列表部分

我们分别从删除列表单个数据元素,连续多个数据元素,列表变量来介绍

6.1.1删除单个列表数据元素

假设我们要把小明进行删除,我们发现小明所在的索引位置为0

于是编写程序如下所示:



运行结果如下所示

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

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



输出结果上,就只剩下小黑和小白了。

6.1.3删除列表变量

假设我们要把列表变量删除,而不是清空列表。编写程序如下所示



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

6.2使用pop函数删除元素

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

6.2.1删除列表末尾数据元素

pop函数可删除列表末尾的数据元素,并能够接着使用它。pop源自这样的类比:弹出,列表就像一个栈,而删除列表末尾的数据元素相当于弹出栈顶元素。

其语法格式:列表变量名.pop()

假设我们要删除小白,然后输出小白已经被删除,编写程序如下所示:



运行结果如下所示



由此可见,pop函数是有返回值的。返回的是被删除的列表末尾元素。

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

实际上,可以使用pop()来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。

其语法格式:pop(索引值)

编写程序如下所示



运行结果如下所示:



我们可以发现使用pop函数弹出指定索引位置的数据元素后,后面的数据元素依次前移1位。

注意:我们删除元素时,如果不确定使用del关键字还是pop函数,下面是一个简单的判断标准:如果要从列表中删除一个数据元素,且不再以任何方式使用它,就用del关键字;如果你要在删除元素后还想继续使用它,就使用pop函数。

6.3根据值删除数据元素

有时候,不知道要从列表中删除的值所处的索引值。而只知道要删除的数据元素的值,可使用remove函数

其语法格式:remove(数据元素值)

假设我们要删除小黑这个名字,编写程序如下所示



运行结果如下所示



我们可以发现,remove函数本身只是将数据元素根据值删除,但是因为我们知道数据元素的值,后期要是想着使用这个我们删除的值,我们可以先进行存储,然后在用到的地方,再进行调用。

注意:remove()方法只删除第一个与指定元素值相同的数据元素。如果要删除的数据元素可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。这会在后面进行介绍

【python基础】复杂数据类型-列表类型(增删改查)的更多相关文章

  1. python基础之list列表的增删改查以及循环、嵌套

    Python的列表在JS中又叫做数组,是基础数据类型之一,以[]括起来,以逗号隔开,可以存放各种数据类型.嵌套的列表.对象.列表是有序的,即有索引值,可切片,方便取值.列表的操作和对字符串的操作是一样 ...

  2. Python(二)列表的增删改查

    一,列表的增删改查 列表中增加元素: 1,从列表的末尾增加一个元素:append("") 2,从列表中插入一个元素:insert(下标位置,插入的元素) 合并列表: 1,name. ...

  3. python基础学习之类的属性 增删改查

    类中的属性如何在类外部使用代码进行增删改查呢 增加.改变: setattr内置函数以及 __setattr__魔法方法 class A: aaa = '疏楼龙宿' a = A() setattr(a, ...

  4. Python数据类型-列表(list)增删改查

    1.添加元素 添加单个元素:使用append(object)函数可以为列表添加单个元素,参数object为对象:也就是说所有Python的对象都可以添加到列表中. 添加多个元素(合并列表):使用ext ...

  5. Python列表的增删改查排嵌套特殊输出格式

    Python列表的增删改查排嵌套特殊输出格式 一.列表的样子: a = ['q' , 'w' , 'e ', 'r','t'] a为列表名,[ ]为列表内容,' '为列表内的元素,'q'为a[0] 二 ...

  6. python列表的增删改查和嵌套

    列表 python常用的数据类型 可承载任意的数据类型 列表是有序的,可索引.切片(步长) 列表的创建 list1 = [1, 2, 'whll'] #1. list2 = list() #2. #3 ...

  7. 列表的初识,列表的索引切片,列表的增删改查,列表的嵌套,元组的初识,range

    1 内容总览 列表的初识 列表的索引切片 列表的增删改查 列表的嵌套 元组的初识(了解) 元组的简单应用(了解) range 2 具体内容 列表的初识 why: str: 存储少量的数据.切片出来全都 ...

  8. Hadoop基础-HDFS的API实现增删改查

    Hadoop基础-HDFS的API实现增删改查 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客开发IDE使用的是Idea,如果没有安装Idea软件的可以去下载安装,如何安装 ...

  9. python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查

    python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...

  10. Vc数据库编程基础MySql数据库的表增删改查数据

    Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...

随机推荐

  1. day08-自定义转换器&处理JSON&内容协商

    自定义转换器&处理JSON&内容协商 1.自定义转换器 1.1基本介绍 SpringBoot 在响应客户端请求时,将提交的数据封装成对象时,使用了内置的转换器,也就是自动帮我们封装对象 ...

  2. 手机号码归属地 API 实现防止骚扰电话,看这一篇就够了(内附设计思路和代码)

     在当今时代,骚扰电话已经成为了很多人日常生活中的一个常见问题,严重影响了人们的工作和生活. 为了避免这种情况的发生,企业和机构可以采用手机号码归属地 API,以提供更好的电话服务,减少骚扰电话的出现 ...

  3. 自己动手从零写桌面操作系统GrapeOS系列教程——23.从硬盘读取文件

    学习操作系统原理最好的方法是自己写一个简单的操作系统. 本讲代码文件为boot.asm,要读取的文件为data.txt. 一.在FAT16系统中读取文件的流程 在GrapeOS中用到的文件少且小,所有 ...

  4. CTF-RE-学习记录-汇编-2

    汇编工具DTDebug 下载后设置好odd与插件路径,同时在属性中设置为管理员身份运行(无Administrator权限进入的时候一直在提示) 寄存器 存储数据: CPU>内存>硬盘 32 ...

  5. Spring(Bean详解)

    GoF之工厂模式 GoF是指二十三种设计模式 GoF23种设计模式可分为三大类: 创建型(5个):解决对象创建问题. 单例模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式 结构型(7个):一些类 ...

  6. C++中va_list, va_start, va_arg, va_end的基本用法

    关于va_list, va_start, va_arg, va_end 由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦,即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这 ...

  7. 在 Kubernetes 集群上部署 VSCode

    在 Kubernetes 集群上部署 VSCode Visual Studio Code Visual Studio Code 是一个轻量级但功能强大的源代码编辑器,可在您的桌面上运行,适用于 Win ...

  8. mysql数据库的登录脚本

    ######################## ku脚本: 可以使用以下ku脚本,它可以根据提供的参数登录到MySQL数据库: #!/bin/bash # Check for correct num ...

  9. Springboot接入ChatGPT 续

    在之前的文章\(^{[ 1 ]}\)中,原方案的设计,是基于功能实现的角度去设计的,对于功能性的拓展,考虑不全面,结合收到的反馈意见,对项目进行了拓展优化.完成的优化拓展有如下几个方面 固定会话 历史 ...

  10. 如何生成文本: 通过 Transformers 用不同的解码方法生成文本

    简介 近年来,随着以 OpenAI GPT2 模型 为代表的基于数百万网页数据训练的大型 Transformer 语言模型的兴起,开放域语言生成领域吸引了越来越多的关注.开放域中的条件语言生成效果令人 ...