Python学习-----起步4(列表元素的添加,删除,修改,查询,获取长度)

2023-11-19

目录

 前言:

列表元素的添加(或者叫写入)

1.append()函数

 2.extend()函数

3.insert()函数

列表元素的删除

1.remove() 函数

2. pop() 函数

3.clear()函数

4.del   方法(这个不是函数哦)

列表元素的修改

1.单个值进行修改

2.多个值的修改

 列表元素的查询

1.index() 函数

2.count()函数

获取列表的长度(即元素的个数)

len() 函数

习题


 前言:

        在上一期已经介绍了Python的的序列,这一期我会详细讲解Python中有序序列----列表元素的插入,删除,修改,查询和获取长度,来让大家进一步学习列表的用法。

       上一期内容Python学习------起步3(序列与数据类型转换)_守约斯维奇的博客-CSDN博客

列表元素的添加(或者叫写入)

1.append()函数

方式:这个函数会把增加的元素,放到列表的末尾

格式:列表名.append(新增数据)

添加类型:前面讲了,列表可以包含Python所有的类型,所以添加字符串,整形,浮点型,布尔类型,列表类型,元组类型,都是没有问题的。

注意事项:这个函数会把添加的数据看做为一个整体来进行添加,比如添加列表,那么添加的是列表的一个整体

示例:

li=['李白','韩信','百里玄策']
print(li)
#写入数据
li.append('曜')
print(li)

a='赵云'
li.append(a)
print(li)
#添加列表
bb=['橘右京','娜可露露']
li.append(bb)
print(li)
#添加元组
cc=('瑶','蔡文姬')
li.append(cc)
print((li))

运行结果:

 2.extend()函数

添加方式:该方法的新增元素都添加在列表的末尾

格式:列表名.extend(新增数据)

注意事项:这个函数会把添加的数据进行初步拆分,再进行添加,比如添加列表,那么添加的结果是初步拆分好的链表

示例1:

li=[1,'李白',2,'李信',3,'李华']
print(li)
#添加字符串
li.extend('夏洛特')
print(li)

         不难看出来,结果跟append()函数是不一样的,我添加了'夏洛特' 这个字符串,输出结果把这三个字拆分了。这是因为extend() 函数在添加数据的时候会进行初步拆分,然后把拆分好的数据添加到链表的末尾。

示例2:

li=[1,'李白',2,'李信',3,'李华']
print(li)
#添加列表
aa=[4,'澜朋友',5,'夏洛特']
li.extend(aa)
print(li)
#添加元组
bb=('明世隐','孙斌')
li.extend(bb)
print(li)

 这里我们也可以看到,如果我去条件列表或者元组的话,只是进行初步拆分然后添加进去,而不是把列表当做一个整体来添加进去,这跟append() 函数是不一样的;然后就是我添加列表里面的数据没有进行拆分,‘夏洛特’ 这三个字就没有拆分了,因为这个元素是在添加列表bb里面的,已经进行初步拆分了。

3.insert()函数

添加方式:可以根据我们指定的位置进行数据添加,想放到哪里就放到哪里

格式:列表名.insert(下标值,新增数据)

注意事项:这个函数添加的数据跟append()函数一样,都是把数据作为一个整体进行添加

示例:

#位置号
#      0         1         2
li=['百里守约','李元芳','马可波罗']
print(li)
#添加字符串
li.insert(1,'孙尚香')
print(li)
#添加列表
li.insert(1,['黄忠','伽罗'])
print(li)
#添加元组
li.insert(2,('鲁班七号','鲁班大师'))
print(li)

 使用insert()函数,我们可以在想要的位置插入数据,前面讲到过列表的数据位置是从0、1、2、3……去作为下标的。还有就是,insert()函数跟append()函数一样,把数据作为一个整体去添加。

列表元素的删除

1.remove() 函数

方式:是根据数据值进行删除,直接输入要删除的数据

格式:列表名.remove(数据)

注意事项:注意!要删除的数据,在列表中必须存在,否则就会报错!

                  如果列表有相同的数据时,只能删除下标值最小的那个数据

示例1:

li=['百里守约','李元芳','马可波罗']
print(li)
#添加字符串
li.insert(1,'孙尚香')
print(li)

#删除数据
li.remove('李元芳')
print(li)

 可以看出,‘李元芳’ 被删除了。非常简单!

示例2:


li=['百里守约','李元芳','马可波罗']
print(li)
#添加字符串
li.insert(1,'孙尚香')
print(li)

#删除数据,这里我删除一个列表不存在的数据'韩信'
li.remove('韩信')
print(li)

很显然,结果是报错的,所以在使用remove函数的时候,要注意删除的数据是否在列表存在!!!

示例3:

li=['孙悟空','韩信','娜可露露','孙悟空','李白']
#删除数据
li.remove('孙悟空')
print(li)

家人们,猜一猜输出结果是什么?   答案揭晓:

看,我要删除'孙悟空' 结果只删除了第一个'孙悟空',而后面的'孙悟空' 没有被删除,这说明remove()函数只删除一个下标的数据,而且如果出现相同的数据,会删除下标值最小的那个数据(最靠前的那个) 

2. pop() 函数

方法:根据下标值删除数据

格式:列表名.pop(下标)

注意事项:当pop没有下标,会默认删除最后一个数据
                  当下标值超过列表长度会报错

示例1:

li=['孙悟空','韩信','娜可露露','孙悟空','李白']
print(li)
#删除数据
li.pop(2)
print(li)

结果就很简单了,直接把下标为2的'娜可露露' 删除了,我就不多说了

示例2:

li=['孙悟空','韩信','娜可露露','孙悟空','李白']
print(li)
#删除数据
li.pop()
print(li)

 如果我不写删除哪个下标的数据,这个系统会默认删除列表最后一个数据。(当检索到最后一个数据的时候,解释器还没有找到要删除哪个数据,所以会直接删除最后一个数据)

示例3:

li=['孙悟空','韩信','娜可露露','孙悟空','李白']
print(li)
#删除数据
li.pop(9)
print(li)

很显然,如果下标超过列表的最大下标值,会报错。

3.clear()函数

方式:删除列表所有数据,使其成为空列表

格式:列表名.clear()

 这个很简单,就是直接把列表变为空列表

li=['孙悟空','韩信','娜可露露','孙悟空','李白']
print(li)
#清空列表
li.clear()
print(li)

4.del   方法(这个不是函数哦)

方法:根据下标删除元素,不过可以进行范围性删除数据(利用切片)

格式:del 列表名[起始值:终点值:步长]

注意事项:del 不仅仅可以去删除数据,还可以去删除变量

示例:

#删除单个数据
li=['孙悟空','韩信','娜可露露','孙悟空','李白']
del li[1]
print(li)
#删除多个数据
li=['孙悟空','韩信','娜可露露','孙悟空','李白']
del li[1:3]
print(li)
#删除全部数据
del li[:]
print(li)
#删除列表
del li
print(li)

   这里可以用切片法去删除范围的数据,就不多说了。最后一个我是直接删除列表 del li   这跟clear()函数不一样,del是直接删除列表,如果下面我再去使用(输出这个列表)就会报错。因为这个列表已经不存在了。

列表元素的修改

1.单个值进行修改

格式:列表名[下标]=新元素

li=['孙悟空','韩信','娜可露露','孙悟空','李白']
li[2]='橘右京'

很简单就不多说了。

2.多个值的修改

格式:列表名[起始值:终点值] = 新元素

 同样也是可以用切片法,选择性的修改,前面已经详细介绍了切片法Python学习------起步3(序列与数据类型转换)_守约斯维奇的博客-CSDN博客,这里不多说了。

li=['孙悟空','韩信','娜可露露','孙悟空','李白']
print(li)
#列表的多个值修改
li[1:3]='橘右京','百里玄策'
print(li)

 列表元素的查询

1.index() 函数

方式:该方法得到的结果就是元素对应的下标

格式:列表名.index(数据)

注意事项:如果输入查询一个列表中不存在的数据,结果会报错,同时这个函数还具有范围查询的功能

示例1: 

li=['狂铁','蒙恬','凯','白起','钟无艳']
print(li)
#数据下标的查询
a=li.index('白起')
b=li.index('蒙恬')
print(a,b)

 这个函数还是很简单的,直接输入要查询的数据,然后就会得到这个数据的位置下标。 

示例2: 

li=['狂铁','蒙恬','凯','白起','钟无艳']
print(li)
print(li.index('蒙恬',0,2))#这个是在准确的范围以内的
print(li.index('凯',0,1))  #这个是不在这个范围以内的

 从这里我们可以看出,如果在查询的数据不在这个范围以内就会报错,如果在范围以内就可以查询得到,同时还可以减少运算次数

2.count()函数

作用:统计元素在列表中出现的次数

格式:列表名.count(数据)

示例1: 

li=['狂铁','蒙恬','凯','白起','钟无艳','白起']
print(li)
#数据下标的查询
a=li.count('白起')
print(a)

 可以看出‘白起’ 出现的次数为2,那么结果就返回2

示例2:

那如果我想查询一个列表不存在的数据,结果会怎么样呢?会报错吗?

li=['狂铁','蒙恬','凯','白起','钟无艳','白起']
print(li)
#数据下标的查询
a=li.count('李信')
print(a)

结果是不会报错,返回值为0,所以我们可以通过这个函数去检测,这个列表中是否存在这个数据,如果结果为0,那么 列表中出现这个数据的次数为0次,说明不存在这个数据。

获取列表的长度(即元素的个数)

len() 函数

作用:统计元素在列表中出现的次数

格式:列表名.len(数据)

li=['狂铁','蒙恬','凯','白起','钟无艳','白起']
print(li)
#统计这个列表里面元素的个数
length=len(li)
print(length)

很显然,结果是有6个元素的,这没什么好说的。

习题

1.已知一个列表li= [1,2,3,4,5,6,1]

(1)求列表的长度

(2)判断7 是否在列表中

(3)在列表的末尾新增一个元素10

(4)删除第一个元素

(5)在列表中在添加一个列表li1[10,14,17]

(6)删除整个列表li

(7)在列表中在添加一个元组t(0,5,30)

(8)统计元素1在列表的次数

(9)把元素5改成15

2、判断数据的类型时候应该使用什么?

3、简述Python中目前学习到的几种数据类型,分别为什么?

3、简述变量的命名规范有哪些

 学习完了这些内容,一起来做做练习吧!!!

答案

#1
li= [1,2,3,4,5,6,1]
#(1)
print(len(li))
#(2)
print(li.count(7))
#(3)
li.append(10)
print(li)
#(4)
del li[0]
print(li)
#(5)
li1=[10,14,17]
li.insert(2,li1)
print(li)
#(6)
del li
#(7)
li= [1,2,3,4,5,6,1]
t=(0,5,30)
li.insert(5,t)
print(li)
#(8)
print(li.count(1))
#(9)
li[li.index(5)]=15
print(li)

#2
#用type()函数

#3
#int(整形) str(字符串类型) bool(布尔类型) list(列表类型) tuple(元组类型) float(浮点型)

#4
#通过下面这个方法,可以查看一些已经定义好的量,变量不可以取这些名字
# import keyword
# keyword.kwlist

        好了,这一期就讲到这里了,喜欢的话就给个关注吧!thanks~~~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python学习-----起步4(列表元素的添加,删除,修改,查询,获取长度) 的相关文章

随机推荐

  • MySQL导入导出数据mysqldump,mysql,select into file,load data

    研发人员往往需要从数据库中导出数据 或者将数据导入到数据库中 一些客户端工具提供了简单方便的功能 可以让他们不用使用命令进行操作 但是客户端工具可能会受到环境的限制而不能使用 所以 研发人员有必要掌握一些常用的命令来进行操作数据 MySQL
  • 残差神经网络的研究

    目录 一 ResNet残差神经网络 1 1 提出 1 2 作用 1 3 应用场景 1 4 残差单元的结构 1 4 1 残差网络得名的原因 1 4 2 残差网络可以有效缓解退化现象的原因 1 4 3 数学原理 二 附录 2 1 残差神经网络可
  • GD32F303调试小记(一)之USART(接收中断、接收空闲中断+DMA、发送DMA)

    前言 之前写了GD32F103调试小记 二 之USART 接收中断 接收空闲中断 DMA 发送DMA 一文 这次我们来看看GD32F303的USART是如何配置的 结合这两篇文章 相信大家GD32的USART配置流程会十分熟悉 DMA 能大
  • SpringBoot项目实战,附源码

    SpringBoot2 0笔记 一 SpringBoot基本操作 环境搭建及项目创建 有demo 二 SpringBoot基本操作 使用IDEA打war包发布及测试 三 SpringBoot基本操作 SpringBoot整合SpringDa
  • 逆向爬虫09 协程 & 异步编程(asyncio)

    逆向爬虫09 协程 异步编程 asyncio 1 什么是协程 What 协程 Coroutine 也可以被称为微线程 是一种用户态内的上下文切换技术 简而言之 其实就是通过一个线程实现代码块相互切换执行 def func1 print 1
  • Unity 拖尾(Trail Renderer)效果的实现

    1 新建场景 创建一个球 在球上添加组件Trail Renderer 2 在Trail Renderer组件设置Time为0 5 Materials材质 3 Width下点击右键 Add key 添加控制点 起始宽度为1 0 结束宽度为0
  • Nginx配置https网站

    1 什么是https https超文本传输安全协议是http ssl安全套接层和tls传输层安全的组合 用于提供加密通信和鉴定网络服务器的身份 网上的支付交易 个人隐私和企业中的敏感信息等越来越受到人们的关注和保护 因此https目前已经是
  • ICCV 2021: AdaAttN: Revisit Attention Mechanism in Arbitrary Neural Style Transfer 阅读笔记

    ICCV 2021 AdaAttN Revisit Attention Mechanism in Arbitrary Neural Style Transfer 论文 https arxiv org pdf 2108 03647 pdf 代
  • app上架流程的整理

    app的上架流程 一 准备工作 首先需要有开发者账号 企业级的账号是299 个人开发者账号是99 没有的话可以登录http developer apple com 自行申请 假如你已经有账号了 进入苹果官网点击Accout登录 二 申请证书
  • Android课设——理财小助手

    一 app介绍 理财小助手是一款利用Android studio软件实现的APP 可以录入每天的消费项目以及消费金额 同时也可以查找消费记录 统计消费总额 我用到的Android studio版本如下 二 模块设计 下面是我实现的一些模块
  • iOS Sqlite数据库增删改查基本操作

    Sqlite是ios上最常用的数据库之一 大家还是有必要了解一下的 实现效果如图 先来看看数据库方法类 将各个操作都封装在一个类里面 达到代码重用的目的 这是程序员都应该努力去实现的目标 这样在下一次用到同样的方法和类的时候 就可以直接使用
  • 推荐几款实用的Android Studio 插件

    http www jcodecraeer com a anzhuokaifa Android Studio 2015 1009 3557 html
  • 【Python小游戏】当当当当 万众瞩目得《滑雪大冒险》来啦~(附源码)

    前文 大家好 我是梨子同学 希望大家多多支持我 哈哈 为了感谢每一个关注我的小可爱 每篇文章的项目源码都是无偿分享滴 见文末 很多csdn的功能还在研究中 还有小编的文笔不好勿怪 会慢慢进步跟大家一起学习的 小编也一直在学习编程 如果代码小
  • javaweb——Response下载文件

    HttpServletResponse web服务器接收到客户端的http请求 针对这个请求分别创建一个代表请求的HttpServletResponse对象 一个代表响应的HttpServletResponse对象 如果要获取客户端请求过来
  • 查看Linux内存cpu使用情况,某一应用内存占用大小

    查看Linux内存 cpu使用情况排序 某一应用内存占用大小 virt res shr data的意义 1 知识点 1 top命令使用 2 如何查看某一应用内存占用大小 3 回收buff cache 1 使用 1 使用top查看cpu 内存
  • java中对象克隆的基本应用

    为什么需要克隆对象 直接new一个对象不行吗 答案是 克隆的对象可以直接使用已经有的属性值 而new出来的对象的属性都还是初始化时候的值 所以当需要一个新的对象来保存当前对象的 状态 就靠clone方法了 那么我把这个对象的临时属性一个一个
  • 行政如何借助ChatGPT提高效率

    文章目录 ChatGPT的优势与局限 行政人员的核心价值 行政人员应对策略 借助ChatGPT提高效率 结论 创作者 全栈弄潮儿 个人主页 全栈弄潮儿的个人主页 个人社区 欢迎你的加入 全栈弄潮儿的个人社区 专栏地址 AI大模型 随着人工智
  • c++ goto语句

    goto语句又称无条件跳转语句 用于改变语句执行顺序 goto语句的一般格式为 goto label 其他语句 label statement label是用户可定义的一个标识符 以冒号结束 例如 include
  • 考公考研热度上升、是增加就业筹码or恐惧就业?

    现在 金三银四 的春招季已经逐渐告一段落 先不从本次职场招聘看 从考公考研来看 很大部分应届毕业生选择去考公务员和研究生 据统计今年457万考研大军比去年的377万整整多了80万人 今年也是最近几年考研人数增长最快的 今年考研大军达457万
  • Python学习-----起步4(列表元素的添加,删除,修改,查询,获取长度)

    目录 前言 列表元素的添加 或者叫写入 1 append 函数 2 extend 函数 3 insert 函数 列表元素的删除 1 remove 函数 2 pop 函数 3 clear 函数 4 del 方法 这个不是函数哦 列表元素的修改