课时5:修改列表

简介: 本文介绍Python语言中修改列表元素的方法,主要包括两种操作方式:通过索引和切片修改列表。首先,使用索引可以单独修改列表中的某个元素,例如将“孙悟空”改为“sunwukong”。其次,通过切片可以批量修改多个元素,如将前两个元素替换为“牛魔王”和“红孩儿”。此外,还介绍了如何使用`del`语句删除元素以及通过切片指定范围进行删除。所有这些操作仅适用于可变序列,对于不可变序列(如字符串),需要先转换为列表才能进行修改。

修改列表

 

摘要:本文为 Python 语言基础中修改列表元素的方法操作

1.用索引修改列表的方法操作

2.用切片修改列表的方法操作

 

1.1 用索引修改列表的方法操作

上节课在序列里讲到:列表在序列里是可变序列,接下来创建一个名称为“04修改元素.py”,然后把上节课的列表案例移过来删除末尾的内容,示例如下:

#创建一个列表
stus =['孙悟空',猪八戒',沙和尚',唐僧',蜘蛛精','白骨精’]

image.png

接下来结合上述列表讲解修改列表中的元素,可以直接通过索引来修改,例如修改“孙悟空”这个元素,在上面的列表中“孙悟空”的索引是 0 ,然后将“孙悟空”改为“sunwukong”示例如下:

#创建一个列表
stus =['孙悟空',猪八戒',沙和尚',唐僧',蜘蛛精','白骨精’]
#修改列表中的元素
#直接通过索引来修改元索
stus[0]=’sunwukong’
print(stus)

image.png

执行结果:

image.png

从以上示例可以看出成功将“孙悟空”改写为“sunwukong”。

接下来在改写的代码前输出一下,然后在改写后输出一下,有更直观的感受,示例如下:

#创建一个列表
stus =['孙悟空',猪八戒',沙和尚',唐僧',蜘蛛精','白骨精’]
print("修改前:",stus)
#修改列表中的元素
#直接通过索引来修改元索
stus[0]=’sunwukong’
print('修改后:',stus)

image.png

执行结果:

image.png

示例中没有去改变量,而通过索引改 Stus 对象列表里的元素值,接下来在尝试改一下“沙和尚”改为“哈哈”示例如下:

#创建一个列表
stus =['孙悟空',猪八戒',沙和尚',唐僧',蜘蛛精','白骨精’]
print("修改前:",stus)
#修改列表中的元素
#直接通过索引来修改元索
stus[0]=’sunwukong’
stus[2]=’哈哈’
print('修改后:',stus)

image.png

执行结果:

image.png

从示例中可以看出已经成功将“沙和尚”改为“哈哈”,然后讲一下如何删除元素,在列表中是通过 Del 来实现删除元素的,接下来尝试删除“哈哈”这个元素,从修改后的Stus 这个列表中可以知道“哈哈”的索引为2那就需要删除索引为2的元素,操作如下:

#创建一个列表
stus =['孙悟空',猪八戒',沙和尚',唐僧',蜘蛛精','白骨精’]
print("修改前:",stus)
#修改列表中的元素
#直接通过索引来修改元索
stus[0]=’sunwukong’
stus[2]=’哈哈’
# 通过del来删除元素
del stus[2]   #删除索引为2的元素
print('修改后:',stus)

image.png

执行结果:

image.png

以上的操作都是通过索引来实现对列表的修改和删除的操作。

 

1.2 用切片修改列表的方法操作

接下来将通过切片来修改列表,把上面的列表 Stus 复制过来,修改前两个元素的值,然后测试切片的操作,示例如下:

stus =['孙悟空',猪八戒',沙和尚',唐僧','蜘蛛精','白骨精’]
print("修改前:",stus)
#通过切片来修改列表
stus[0:2]=’swk’
print(‘修改后:’stus)

image.png

执行结果:

image.png

以上示例是由切片的方法并且用字符串而字符串里是三个字符从而展示的效果,由于字符串也是一种序列所以会呈现以上效果。接下来改为123来测试如下:

stus =['孙悟空',猪八戒',沙和尚',唐僧','蜘蛛精','白骨精’]
print("修改前:",stus)
#通过切片来修改列表
stus[0:2]=123
print(‘修改后:’stus)

image.png

执行结果:

image.png

从测试中的显示效果来看是报错了,这是因为在切片进行赋值时,只能使用序列, 切片返回的就是序列,例如上面的“swk”这个字符串就是序列,在呈现传输中“swk”时分别传输的‘s‘,’w‘,’k‘,如下图:

image.png

接下来通过切片赋值的方法来给修改前列表中的前两个元素也就是“孙悟空”和“猪八戒”修改为“牛魔王”和“红孩儿”,示例如下:

stus =['孙悟空',猪八戒',沙和尚',唐僧','蜘蛛精','白骨精’]
print("修改前:",stus)
#通过切片来修改列表
stus[0:2]=['牛魔王',’红孩儿’]
print(‘修改后:’stus)


image.png

执行结果:

image.png

从上面来看2个元素换2元素,但其实还可以增加到3、4、5等等都可以。示例如下:

stus =['孙悟空',猪八戒',沙和尚',唐僧','蜘蛛精','白骨精’]
print("修改前:",stus)
#通过切片来修改列表
stus[0:2]=['牛魔王',’红孩儿’,’二郎神’]
print(‘修改后:’stus)


image.png

执行结果:

image.png

由于切片的是包含开始不包含结束,那接下来设置为索引0到0是效果如何?测试如下:

stus =['孙悟空',猪八戒',沙和尚',唐僧','蜘蛛精','白骨精’]
print("修改前:",stus)
#通过切片来修改列表
stus[0:0]=['牛魔王’]
print(‘修改后:’stus)

image.png

image.png

从示例可以看出牛魔王到了孙悟空之前了,因为这样设置是向索引为0的位置插入元素,之前上两示例是使用新的元素替换旧的元素。

还有一中情况是用步长来替换元素,接下来通过 Stus 列表使用步长来间隔取元素,示例如下:

stus =['孙悟空',猪八戒',沙和尚',唐僧','蜘蛛精','白骨精’]
print("修改前:",stus)
print(stus[::2])
print(‘修改后:’stus)

image.png

执行结果:

image.png

示例中间隔取出3个元素,分别是’孙悟空','沙和尚','蜘蛛精',那接下来尝试用一个’牛魔王’来代替三个元素行不行?示例如下:

stus =['孙悟空',猪八戒',沙和尚',唐僧','蜘蛛精','白骨精’]
print("修改前:",stus)
stus[::2]=['牛魔王’]
print(‘修改后:’stus)

image.png

image.png

从示例中报错来看在用步长时选取多个元素不能用一个或者不对等的元素来替换,所以当设置了步长时,序列中元素的个数必须和切片中元素的个数一致。示例如下:

stus =['孙悟空',猪八戒',沙和尚',唐僧','蜘蛛精','白骨精’]
print("修改前:",stus)
stus[::2]=['牛魔王',’红孩儿’,’二郎神’]
print(‘修改后:’stus)

image.png

image.png

接下来讲通过切片删除元素,还可以使用 Del 来删除,然后通过示例来删除前两元素,如下:

stus =['孙悟空',猪八戒',沙和尚',唐僧','蜘蛛精','白骨精’]
print("修改前:",stus)
del stus[0:2]
print(‘修改后:’stus)

image.png

image.png

然后还可以用步长的方法间隔删除,示例如下:

stus =['孙悟空',猪八戒',沙和尚',唐僧','蜘蛛精','白骨精’]
print("修改前:",stus)
del stus[::2]
print(‘修改后:’stus)

image.png

image.png

然后还可以直接通过切片选定范围后定义一个空列表(序列)内容来删除,示例如下:

stus =['孙悟空',猪八戒',沙和尚',唐僧','蜘蛛精','白骨精’]
print("修改前:",stus)
stus[1:3]=[]
print(‘修改后:’stus)

image.png

image.png

以上操作,只适用于可变序列,不可变序列,无法通过索引来修改,示例如下:

#以上操作,只适用于可变序列
s ='hello
s[1]='a'
print(s[::2])

image.png

image.png

对于这种情况可以通过 List()函数将其他的序列转换为list,

示例如下:

s ='hello
s=list(s)
print(s)

image.png

image.png

从示例来看s已经变为一个列表,但是已经不是字符串了。hello分布别变为元素。

以上是通过索引来修改列表对象的内容。

 

 

 

 

相关文章
|
3月前
|
人工智能 Linux API
OpenClaw保姆级教程:阿里云/Windows11/MacOS/Linux本地部署步骤+集成小红书Skill自动化运营+常见问题解答
OpenClaw(Clawdbot)作为一款可本地部署的AI助手工具,能实现AI文案创作、封面生成、平台内容发布与评论回复的全流程自动化,依托本地运行的特性,其操作更灵活且数据安全性更高。2026年该工具对国内大模型生态的适配性进一步提升,尤其是完成了阿里云百炼大模型API的无缝对接,让国内新手无需复杂的网络配置即可实现免费使用。本文将从基础准备、跨系统部署、阿里云百炼API配置、小红书自动化Skill安装与配置,到日常使用和问题排查,为零基础用户呈现一套完整、可落地的OpenClaw本地部署流程,覆盖Windows11、MacOS、Linux三大主流系统,同时详解阿里云百炼API的获取与配置
1579 4
|
搜索推荐 小程序 开发工具
Gitee推荐项目!埋点+用户分析系统,适合中小团队的开源方案
一款好用的用户行为分析工具,对产品经理、运营人员和开发者来说,都越来越重要。 目前市面上主流的工具,不是价格高昂、数据不透明,就是部署复杂,很难维护。 ClkLog,适合中小团队的开源方案,已经在Gitee上开源,社区也在持续更新中。
1037 7
|
搜索推荐 数据挖掘 语音技术
弹幕树洞项目功能新增篇
【9月更文挑战第25天】这是对弹幕树洞项目的功能改进建议,包括增强互动功能(如回复弹幕、点赞与踩),个性化设置(如主题选择、自定义字体颜色、隐私设置),拓展社交功能(如关注用户、分享功能、社区活动),数据分析与反馈(如情绪分析、热门话题、用户反馈)以及多媒体支持(如图片和表情、语音弹幕)。这些新增功能旨在使项目更丰富、有趣且实用,提升用户体验。
333 4
|
存储 监控 安全
API接口数据获取全流程用户指南
本文介绍了从明确需求到数据存储与管理的API接口数据获取全流程。首先,明确业务需求和选择合适的数据源;接着,准备API接口,包括审查文档、申请密钥和安全存储;然后,构建与发送请求,处理响应与数据;最后,进行数据存储与管理,并持续监控与优化,确保数据的安全与合规。通过这些步骤,用户可以高效地获取和管理数据,为数据分析和业务优化提供支持。
|
SQL Java 数据库连接
阿里云ads学习
【8月更文第6天】
1266 3
|
存储 持续交付 数据安全/隐私保护
Docker 注册中心
【8月更文挑战第24天】
494 0
|
分布式计算 前端开发 Java
Java的web框架
Java的web框架
575 1
支付系统30-------支付宝支付---支付成功异步通知----通知参数和通知结果
支付系统30-------支付宝支付---支付成功异步通知----通知参数和通知结果
|
小程序
TDesign电商小程序模板解析02-首页功能
TDesign电商小程序模板解析02-首页功能