python日常学习——列表增删改查

今天咱们来看一下列表的增删改查啊,这个是一个重点,你必须要把它记下来,而且呢,要非常的灵活的去运用它。

那首先我们先去创建一个列表。创建好了列表之后,我想往里面插入一些东西,那么在插入之前,我先告诉你啊,我的列表现在是空的。那往里面加东西吧,向列表里面添加内容。怎么添加呢?第一个你要记住的是lst.append ,是往里面追加内容,比方说我把王大明扔进去,

扔进去之后我们运行一下,

就进来了。那再加一个lst.append,比方说加个李四,

那这个时候走,

那我们再加一个王五,走,

王五也加进来了。那么此时我们其实能发现一个规律,就是说append它始终都是在你列表的最后的位置去添加内容。所以第一个我们要聊的就是append它有一个特性,叫追加,它在列表的最后面去追加。

然后还有一个叫lst.insert ,insert叫插入。这个用的不多,了解一下就可以了。那么插入的话,你就得告诉它我要往哪个位置去插?比方说我想往列表儿的第零个位置去插入一个赵敏,赵敏就塞在第零个位置了。

那么各位想象一下啊,现在我的列表长上面那个样子,我想在第零个位置把赵敏塞进去,那么原来的王大明怎么办?王大明,李四,王五,他们每一个人都会往后串一个。就好比说我们假设啊,真的是在教室上课的话,那我们第一列的人啊,有坐在第一排的王大明,第二排李四,第三排王五,这个时候我要把赵敏塞在第一排那,王大明他们就得往后串一个。

所以这个时候我们运行一下,

赵敏就跑到最前面来了,王大明他们就往后顺延了一个,他们索引都要涨一个。所以此时这个insert它如果是在最前头进行插入的话,它的效率是很低很低的,因为它要涉及到后面的元素,都要往后串一个。

然后再往下,我们还要聊一个叫extend。extend它要的参数是一个列表,或者说是一个可迭代的东西。比方说随便放几个人啊,第一个人放一个武则天,然后再来一个赢政,再来一个马超,我放这三个人,这三个人extend加到列表里边去,看看什么效果。

你会发现这三个人全加进来了。所以它的作用是可以合并两个列表,把你给的这个列表里边的每一项丢到lst这个列表里面去,它是批量的添加。

那这是列表的添加功能,就这三个,你需要记住的是这个append,其他的了解知道了这么个玩意儿就可以了。

列表可以添加呢,就应该能删除。那我们删除的话有这么几个功能,第一个list.pop,要往外弹一个啊,那你想把哪一个弹出去,你是不是得告诉它,那这个接收的参数是一个索引,你想把第几个元素弹出去,比方说往里面扔个三,那三的话,王五就被弹出去了。

我们来看一眼效果。

原来是王五,现在变成了武则天,所以把3弹出去了。但是有的时候我们需要知道,我把3弹出去的,那3是谁呀,你把谁弹出去了?pop会返回给你,所以这个时候我们可以收到一个返回值。来print这个ret。

ret是王五,王五被弹出去了。所以pop的效果是什么呢?是给出被删除的索引,然后返回被删除的元素,中间呢,就执行删除操作了。

然后下一个。不光是pop,还有一个东西叫remove。remove呢,叫移除删除。那remove把谁删掉,直接给元素。比方说这里面儿,我看马超不好,跟马超对线就没赢过,所以直接remove马超。

马超remove掉之后,我们再去看一眼这个列表长什么样。

我们看,马超就被删除掉了。那么此时我已经知道了,要删的是马超了,所以remove不会返回给你任何东西,这个是remove,删除某个元素。知道有这么个玩意儿就可以了啊。

那这个是删除操作啊,增删,删完了之后该改了,修改。我想把列表里边儿的某个人给他改掉,比方说我不想跟武则天对线啊,我想把武则天给我换掉啊,武则天是第几个呀?第四个位置,3换成另外一个来的,第四个位置等于一个新元素,比方说,我想跟凯对线。

看,武则天,就变成了凯。所以修改特别简单,直接用索引就可以进行修改操作。

然后增删改最后一个概念查询。列表的查询其实我们用的最多的就是这个print列表里面的第某一项,比方说3

3是凯,凯就处理了,所以用的最多的就是这个,直接用索引进行查询操作啊,所以它很简单啊。

然后增删改查说完了,我们来做个小练习,把所有的姓张的人修改成姓王。我先准备好我的列表。

现在列表长这个样子。那接下来对他们进行修改的话,此时我是不是得对这里面进行遍历啊,因为我要对所有的人进行修改,所以可以做个循环,for。这个时候我们item in list,那此时我们就可以拿到每个人的名字。

那么每个人的名字我们就得判断一下,判断一下这个人的名字是不是姓张。如果姓张的话,我要对他做一定的处理。所以此时,我们就可以判断一下,if item.startswith是张,这个是字符串操作,判断字符串是不是以什么开头。判断出来你姓张的,那接下来我应该怎么做?想想啊,比方说我现在拿到的姓张的人啊,张无忌啊,张绍刚,我想把它改成王绍刚,那么此时我确定我要把张改成王,那这个人的新名字,new_name是不是应该等于item取从"绍"往后的地方,前面再拼上一个王,是不是就可以了?所以前面应该是一个王,拼接上它从1位置开始到后面的所有内容。就是把张绍刚前面那个张干掉,换成王,王后面拼的还得是邵刚。那邵刚怎么拼?item里面从1开始到结尾。所以此时我的new_name来print一下。(注意:print要和上面一行是对齐的)

王绍刚王无忌没错。然后接下来的这个问题就比较麻烦了,接下来我们得把新名字丢回列表。这个时候我就得把列表里边的某一项,比方说张绍刚这一项给他换掉,给他做个修改操作,要把张绍刚换成王绍刚。那么如果说我们现在没有这个循环,我现在让你手动改,是不是列表里边的6给他换成王?王绍刚。

所以我们此时新名字有了,还差谁?差这个索引。把哪个位置的名字换成王绍刚。所以此时我们还有这样的一个需求,就是说我们想把名字丢回去,丢回列表,我们此时必须需要索引。那索引怎么来?那此时问题就来了,这个for循环的弊端就来了,我在循环的时候直接从列表里面拿到的元素,此时是不是看不见这个元素是第几项?那也就是说我们的循环得改一改了,我不能这么干了,我得能够看到它的索引位置。那索引位置的话怎么来去循环?这是第几个开始?是不是从零开始?那我此时的循环是不是可以这样来做?for i in range,从几开始?从零开始,到6结束,我得写7。我们说range的话,0,7,7取不到。那正好是我这里边的元素的索引。

那i是索引的话,接下来是不是item就可以等于列表中的第i项的?i=0的时候,列表的第零个是不是赵敏出来了?那i=1的时候是不是王大明出来了?以此类推item还是列表里边的每一项。

但是我这么写这个程序啊,不好。不好在哪儿呢?你琢磨琢磨啊,0,7还可以简化一下,写个7成不成?没问题,range嘛,从零开始嘛。那问题是啥呢?如果这里面我把李四干掉,就变成六项了,不好,你这玩意儿到6啊。所以此时你会发现你这个数字得跟着列表里面装的东西,跟着他去变的来。刚才列表里面有七个东西,七个元素,我删一个元素,变六个了,这个应该是放六。所以你会发现这个位置最好放列表的长度就可以了。所以此时range里面可以这么干,len(lst)。这个循环注意啊,len(lst)是列表的长度,此时我们就可以直接拿到列表索引的for循环。那此时i就是索引,那从列表里面第i项拿出来没问题吧?那我想做修改的时候,我把新名字丢回到列表里面去,很简单的,列表里面的第i项,修改成新名字,是不是就搞定了?所以此时修改就完成了。最终当循环结束之后,我们可以看一眼列表里面什么样。

所有的姓张的,都换成了姓王的。

所以这个案例就跟各位说完了。那这个小练习我主要讲解的是这个循环,把这个循环好好的回去去捋一捋,我们未来这种循环写的会非常的多啊,就这两种循环你都得会。一个是循环的是索引,一个循环的是元素啊,两种循环都要会啊,非常的重要。

那这个完了之后你还可以回去自己去做一些练习,比方说,你把这个列表里面每一项的字符串里面这个单词的首字母变成大写,或者都变成大写,这东西都可以自己去尝试一下啊。所以,这个题能反映出的问题会非常多。

那关于列表的增删改查,咱们暂时说到这儿啊。

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值