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

news2024/10/5 18:34:41

目录

 前言:

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

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(数据)

注意事项:如果输入查询一个列表中不存在的数据,结果会报错

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

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

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() 函数

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

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

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~~~

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

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

相关文章

公司40岁的程序員到底在写什么代码

去年在前公司玩了一年(基本兩三個月一個需求),除了日常維護就一些特別簡單的功能開發,到年底也沒見到公司黃(國企背景),沒辦法只好裸辭,現在這個公司各方面还不错,但是令…

Cookie、Session、Token、JWT只看这一篇文章就够了

什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就打卡成功&a…

MongoDB Map Reduce

在用 MongoDB 查询时,若返回的数据量很大,或者做一些比较复杂的统计和聚合操作做花费的时间很长时,可以使用 MongoDB 中的 mapReduce 进行实现。mapReduce 是个灵活且强大的数据聚合工具,它的好处是可以把一个聚合任务分解为多个小…

设计模式(三)----创建型模式之单例模式(一)

一、创建型模式 创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。 这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。 创建型模式分为: 单例模式 工厂方法模式 抽象工厂模式…

英语学习 3

1 词汇积累 1、ships 船 2、class 级 3、marvels 奇迹 4、marvelous 非凡的、了不起的、极好的 5、cursed 诅咒、被诅咒的 6、the most luxurious ships 最豪华的船 7、luxury 奢侈、奢华的 8、luxurious 心满意足的、舒适的 9、utmost 极度的、最大的 10、kind 种类 11、voya…

Kali Linux神秘工具教程(详细版)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、Kali Linux - 安装和配置信息收集工具二、NMAP隐形扫描搜索Searchsploit域名系统工具dnsenum.plDNSMAPdnstracerLBDHping3漏洞分析工具Cisco-torch工具Cisco…

回溯算法(基础)

目录 一、基本概念 二、以简单全排列认识回溯 (一)决策树 (二)回溯示意图 (三)核心代码 (四)完整代码 三、组合问题 (一)问题 &#xff08…

如何通过groovy扩展方法

最近一直使用jmeter做接口测试,虽然好用,但是每次解析结果都要写大量重复代码。然后想到groovy是可以在运行时动态增强jvm字节码的,比如Date中就有大量增强的方法,比如format,upto,downto......,既然groovy可以&#x…

用 NFTScan 的角度解析 Yuga labs NFT 项目系列

如果要说 NFT 影响力最大的公司是哪个?如果说是 Yuga Labs 应该我想大家应该都不会否认。一个创立一年多的 NFT 营销和开发公司,多次的并购以及行销操作都立下 NFT 界的标竿典范,尤其 BAYC NFT 系列取得巨大成功之后,该团队已成为…

DSP_定义一个大的全局数组_探索之路

前言 最近在做基于dsp平台的无通信接口系统辨识,辨识的时候会有很大的数据需要存到一个数组当中,而dsp如果定义一个很大的全局数组,编译会报错。 本文将探索如何解决这个报错以及全局数组的大小极限。 正文 首先,我们定义了一个…

数学库:Extreme Optimization Numerical 8.1.4 Crack

Extreme Optimization Numerical.NET 的极端优化数值库,更快地构建金融、工程和科学应用程序,具有置信度和预测带的非线性曲线拟合,用于 .NET的极端优化数值库是为 Microsoft .NET 框架构建的通用数学和统计类的集合。用于 .NET的极端优化数值…

将无风险资产与单个风险资产进行组合

目录 1. 基本概念 2. 将无风险资产与单个风险资产进行组合 3. 有效资产组合 1. 基本概念 无风险资产和风险资产。 我的理解:无风险资产利率完全可确定,风险资产的利率称为预期收益率,并且有标准差。 关于风险资产预期收益率和标准差的计…

NC65 自由报表发布为节点如何显示以及如何取消已发布的报表节点

NC65 自由报表发布为节点如何显示以及如何取消已发布的报表节点? 一、NC65 自由报表发布为节点如何显示? 答:需要在动态建模平台-权限管理-职责管理下的职责节点进行功能分配,如下图: 二、如何取消已发布的报表节…

Javac Spire.Presentation 之PPT文本图片内容提取

目录结构前言文档准备引入Maven依赖代码块提取结果验证ppt_demo.ppt 提取结果pptx_demo.pptx 提取结果前言 应公司需求,需实现以下功能 PPT文本内容的替换;PPT文本内容的提取;PPT中图片的提取存放; 此文章将使用Spire.Presenta…

Mal-PEG-SCM,Maleimide PEG SCM,双功能修饰性PEG

Mal-PEG-SCM,SCM-PEG-Maleimide,Maleimide PEG SCM,Maleimide PEG Succinimidyl Carboxymethyl Ester马来酰亚胺-聚乙二醇-琥珀酰亚胺羧甲基酯,马来酰亚胺PEG琥珀酰亚胺羧甲基酯Product specifications:1.CAS No&#…

DataGrip下载安装及使用教程(详细版)

一.安装教程 1.下载 官网下载:DataGrip: The Cross-Platform IDE for Databases && SQL by JetBrains 2.点击Download跳转到下载页面 3.下载最新版本的可以直接点击 Download 下载,下载其他版本的点击 Other versions 下载其他版本 4. 4.选择…

改变Linux文件权限、所属用户组、所有者知识总结

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Linux操作…

requestAnimationFrame详解-js性能优化

requestAnimationFrame 请求动画帧 它是一个浏览器的宏任务 requestAnimationFrame的用法与settimeout很相似,只是不需要设置时间间隔而已。requestAnimationFrame使用一个回调函数作为参数,这个回调函数会在浏览器重绘之前调用。它返回一个整数&#x…

快鲸SCRM打通工单系统,实现客户售前售后一体化管理

深度运营客户关系,做好客户售后服务,才符合企业的长远利益。然而大多数企业只注重售前售中,忽视了售后,导致客户售后服务现状不尽人意,主要体现在: 把客户问题抛到售后群后,便放任不管; 缺乏标…

自动驾驶感知——超声波技术

文章目录1. 超声波基本概念1.1 声波的频率与分类1.2 超声波的波速和波长1.3 超声波的指向性1.4 超声波的反射和折射1.5 超声波的衰减1.6 超声波产生的效应2. 超声波传感器原理及传感器分类2.1 超声波传感器原理2.2 压电式超声波传感器2.3 磁致伸缩式超声波传感器2.4 超声波传感…