Python从菜鸟到高手(11):列表的基础操作
admin
2023-07-20 10:42:13
0次

  列表可以使用所有适用于序列的标准操作,例如索引、分片、连接和乘法。但列表还有一些属于自己的操作,如修改列表本身的操作,这些操作包括元素赋值、元素删除、分片赋值以及下一节要将的列表方法。

1. 列表元素赋值

  如果要修改列表中的某一个元素,可以像使用数组一样对列表中的特定元素赋值,也就是使用一对中括号指定元素在列表中的索引,然后使用赋值运算符(=)进行赋值。

  本例修改了列表s中的前两个元素值。

s = ["Bill", "Mike", "John"]
s[0] = "Mary"
s[1] = 20
print(s)            # 运行结果:['Mary', 20, 'John']

程序运行结果如下图所示。

Python从菜鸟到高手(11):列表的基础操作

  在上面的代码中,通过列表的元素赋值操作,修改了列表s中的前两个的元素,第1个元素修改成了“Mary”,第2个元素修改成了20。

  在列表元素赋值的操作中,列表索引可以是负数,在这种情况下,会从列表最后一个元素开始算起。例如,s[-1]表示倒数第1个列表元素,s[-2]表示倒数第2个列表元素。不过不管列表索引使用正数还是负数,都不能超过索引范围,否则会抛出异常。

  本例使用超过列表索引范围的索引,会抛出异常。

s = ["Bill", "Mike", "John"]
s[-1] = "Mary"                      #  修改列表最后一个元素值
print(s)                                  #  运行结果:['Bill', 'Mike', 'Mary']   
s[3] = "Peter"                       #  索引3超出了列表s的索引范围(-3到2),会抛出异常
s[-3] = "蜘蛛侠"                    #  索引-3是列表s的第1个元素,相当于s[0]
print(s)                            #  运行结果:['蜘蛛侠', 'Mike', 'Mary']
s[-4] = "钢铁侠"                    #  索引-4超出了列表s的索引范围(-3到2),会抛出异常

程序运行结果如下图所示。

Python从菜鸟到高手(11):列表的基础操作

2. 删除列表元素

  从列表中删除元素也很容易,使用del语句就可以做到。

numbers = [1,2,3,4,5,6,7,8]
del numbers[2]     # 删除列表numbers中的第3个元素

3. 分片赋值

  分片赋值和分片获取子列表一样,也需要使用分片操作,也就是需要指定要操作的列表的范围。

  本例将利用分片赋值将列表中的子列表替换成其他列表。并使用list函数将字符串分解成由字符组成的列表,并替换字符串中的某一部分。

s = ["hello", "world","yeah"]
s[1:] = ["a","b","c"]           # 将列表s从第2个元素开始替换成一个新的列表
print(s)                        # 运行结果:['hello', 'a', 'b', 'c']
name = list("Mike")         # 使用list函数将“Mike”转换成由字符组成的列表
print(name)                 # 运行结果:['M', 'i', 'k', 'e']
name[1:] = list("ary")          # 利用分片赋值操作将“Mike”替换成了“Mary” 
print(name)                 # 运行结果:['M', 'a', 'r', 'y']

程序运行结果如下图所示。

Python从菜鸟到高手(11):列表的基础操作

  上面的代码使用了分片赋值对原列表进行了赋值操作,我们可以看到,分片赋值是用另一个列表来修改原列表中的子列表。也就是将原列表中的子列表替换成另外一个子列表。而且在赋值时,被替换的子列表和新的子列表可以不等长。例如,["world","yeah"]可以被替换为['a', 'b', 'c']。

  可能有很多读者会想到,我们可以利用这个特性在列表中插入一个列表,或删除一些列表元素。

  本例将利用分片赋值在列表numbers中插入一个列表,并删除一些列表元素。

numbers = [1,6,7]
# 在列表numbers中插入一个列表,运行
numbers[1:1] = [2,3,4,5]    
print(numbers)
numbers[1:4] = []
print(numbers)

程序运行结果如下图所示。

Python从菜鸟到高手(11):列表的基础操作

  在上面的代码中,使用分片赋值操作在列表numbers中的1和6之间插入了列表[2,3,4,5]。numbers[1:1]中冒号(:)前面的数字表示要替换的子列表的第1个元素在父列表中的索引,而冒号后面的数字表示子列表下一个元素在父列表中的索引,所以冒号前后两个数字相等,表示不替换列表中的任何元素,直接在冒号前面的数字表示的索引的位置插入一个新的列表。最后使用分片赋值将第2、3、4个元素值替换成了空列表,所以最后numbers列表的值是[1,5,6,7]。

《Python从菜鸟到高手》已经出版,开始连载了,购买送视频课程

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...