Python第四章 列表(上)

本文深入讲解Python中列表的定义、访问、切片、增删改查等操作,演示列表排序、翻转及多维列表的使用,适合初学者快速掌握列表相关技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表

  1. 如何定义一个列表

代码段1:

student1 = "maruipeng"

student2 = "sunchangxuan"

student3 = "chenyijie"

student4 = "LiZheRui"

names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]

print(names)

names2 = [student1,student2,student3,student4]

print(names2)

scores = [99,98,97,89]

print(scores)

运行结果:

['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui']

['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui']

[99, 98, 97, 89]

  1. 如何访问列表中的元素

1.通过索引的方式来访问,访问方式:列表[索引],索引是从0开始,编程中所有的索引基本都是从0开始数的,包括其他编程语言。

2.元素里面是什么类型,就可以使用这个类型所有的方法(可以像使用变量一样使用这个表中的各个值)

3.不能访问超出索引范围的数据,否则会报错list index out of range

4.错误会导致程序运行崩溃

list[index].title()

代码段1:

names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]

print(names[3].upper())

print(names[3])

运行结果:

LIZHERUI

LiZheRui

  1. 倒数访问列表——截取子列表的几种方式

代码段1:

names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]

print(names[-1])

运行结果:LiZheRui

可以发现names[3]==names[-1],即可以通过倒序的方式将内容输出出来

注意:输入倒序的负数下标也需要存在!不能不存在,否则依旧报错。

代码段2:


names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]

l2 = names[0:3]#包含开始索引,不包括结束索引,所以只截取了前三个数据

print(l2)

l3 = names[0:4]#包含开始索引,不包括结束索引,所以截取了全部的四个数据

print(l3)

#列表的一些特殊的用法

#不写开头索引,默认从第一个元素开始截取列表中的元素

l4 = names[:4]

print(l4)

#不写结尾索引,默认从指定元素开始截取到末尾

l5 = names[1:]

print(l5)

#开头结尾都不写,相当于从开头截取到末尾,等于复制了整个列表

l6 = names[:]

print(l6)

运行结果:

['maruipeng', 'sunchangxuan', 'chenyijie']

['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui']

['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui']

['sunchangxuan', 'chenyijie', 'LiZheRui']

['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui']

小结:

取得子列表(截取里面的一部分元素):list[startindex,endindex]

只包含开始索引,不包含结束索引元素:list[:2] list[2:] list[:]

  1. 列表中元素的增、删、改、查

1.修改列表元素的代码段:

names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]

names[1]="MaHaoyuan"

print(names)

运行结果:['maruipeng', 'MaHaoyuan', 'chenyijie', 'LiZheRui']

       2.增加列表元素的代码段:

names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]

names.append("ZhangWanjing")

print(names)

运行结果:['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui', 'ZhangWanjing']

       3.向列表中插入元素的代码段:

names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]

names.insert(2,"Zhangwanjing")

print(names)

运行结果:['maruipeng', 'sunchangxuan', 'Zhangwanjing', 'chenyijie', 'LiZheRui']

       4.删除列表中的元素代码段:

names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]

del(names[2])

print(names)

运行结果:['maruipeng', 'sunchangxuan', 'LiZheRui']

注意:删除方法有另外一种写法 del names[2]

       删除列表中的元素代码段:

names =["maruipeng","sunchangxuan","chenyijie","LiZheRui"]

del(names[2])

del names[2]

print(names)

运行结果:['maruipeng', 'sunchangxuan']

       删除列表中的元素还有remove()方法,这个方法是用来删除指定内容的元素,只删除一次。代码段:

names =["maruipeng","sunchangxuan","chenyijie","chenyijie","LiZheRui"]

names.remove("chenyijie")

print(names)

运行结果:

['maruipeng', 'sunchangxuan', 'chenyijie', 'LiZheRui']

总结:

1. 表的修改(表示动态的,里面的元素是可以变化的 - 增删改)

修改表里面的元素:list[index] = newvalue

2.在列表末尾添加元素:List.append(value)

可以通过创建空列表 + append的方法创建列表

3.插入元素:list.insert(index,value) 第一次遇到方法里面两个参数的情况,两个参数用逗号分隔,index位置的元素向后移动

4.(1)删除元素 - 根据索引

写法一:del(list[index])           写法二:del list[index]

(2)删除元素 -  根据值

List.remove(value)

在这个方法中如果有两个相同的值那么只会删除其中的一个

5.有的时候我们需要取得一个数据,用一下之后需要删除(只用一次)

list[-1]          del(list[-1])

  1. 方法的使用方式总结

Python中一些方法的常见形式:

method()     method(arg)      xxV.method()      xxV.method(arg1,arg2)

  1. 使用列表中的Pop方法弹出数据

v = list.pop()把某个元素弹出来:list.pop()  list.pop(index)

Pop的作用等价于先删除列表中某个元素,然后再返回该列表

原始代码段:

names =["maruipeng","sunchangxuan","chenyijie","chenyijie","LiZheRui"]

print(names)#输出原始列表

del names[1]#del方法没有返回值

print(names)#输出删除元素后的列表

运行结果:

['maruipeng', 'sunchangxuan', 'chenyijie', 'chenyijie', 'LiZheRui']

['maruipeng', 'chenyijie', 'chenyijie', 'LiZheRui']

使用Pop方法同样可以实现上述代码段:

names =["maruipeng","sunchangxuan","chenyijie","chenyijie","LiZheRui"]

new_names = names.pop()#默认弹出最后一个元素,并返回具体删除的是哪个元素

print("弹出的元素是:\n"+new_names)

print("弹出元素后的列表是:")

print(names)

运行结果:

弹出的元素是:

LiZheRui

弹出元素后的列表是:

['maruipeng', 'sunchangxuan', 'chenyijie', 'chenyijie']

拓展:list.pop(index)可以弹出指定位置的列表元素

  1. 列表的排序和列表翻转

1.代码段1:

names =["maruipeng","sunchangxuan","chenyijie","1chenyijie","LiZheRui"]

names.sort()#排序优先级:数字>大写字母>小写字母

print(names)

运行结果:

['1chenyijie', 'LiZheRui', 'chenyijie', 'maruipeng', 'sunchangxuan']

(1)数字正序排序代码段:

scores = [21,413,32,187,9,15]

scores.sort()

print(scores)

运行结果:

[9, 15, 21, 32, 187, 413]

注意:中文不能排序

(2)数字倒序排序代码段:在sort()中添加参数reverse=True

scores = [21,413,32,187,9,15]

scores.sort(reverse=True)

print(scores)

运行结果:

[413, 187, 32, 21, 15, 9]

2.sort()方法影响原列表,排序结果将存储在原列表中。

sorted()方法不影响原列表,排序结果不存储在原列表中。

代码段2;

scores = [21,413,32,187,9,15]

sscores = sorted(scores)

print(sscores)

print(scores)#可以看出sorted不改变原列表中的内容

scores.sort()

print(scores)#sort可以改变原列表中的内容

运行结果:

[9, 15, 21, 32, 187, 413]

[21, 413, 32, 187, 9, 15]

[9, 15, 21, 32, 187, 413]

3.列表的倒序方法:reverse()

代码段3:

scores = [21,413,32,187,9,15]

scores.reverse()

print(scores)

运行结果:

[15, 9, 187, 32, 413, 21]

  1. 多维列表和取得列表长度
  1. 获取列表长度

代码段1:

names = ["maruipeng","sunchangxuan","chenyijie","1chenyijie","LiZheRui"]

length = len(names)

print(length)

运行结果:5

2.列表可以包含不同类型的数据

代码段2:

mix = ["MaRuipeng",89,"ChenYijie",90]

print(mix)

运行结果:['MaRuipeng', 89, 'ChenYijie', 90]

3.多维列表和取得列表长度

列表里面的元素可以是列表(多维列表)(多维数组)

  1. 多维列表:

代码段1:

names = ["maruipeng","sunchangxuan","chenyijie","1chenyijie","LiZheRui"]

group = [["MaRuipeng","ChenYijie","ZhangWanjing"],["Wangkaiming","ChenYuheng","RanFeifei"]]

print(group)

print(group[0])#把元素的第一行输出

print(group[1])#把元素的第二行输出

print(group[0][0])#把元素第一行中的第一个元素输出

print(group[1][1])#把元素第二行中的第二个元素输出

运行结果:

[['MaRuipeng', 'ChenYijie', 'ZhangWanjing'], ['Wangkaiming', 'ChenYuheng', 'RanFeifei']]

['MaRuipeng', 'ChenYijie', 'ZhangWanjing']

['Wangkaiming', 'ChenYuheng', 'RanFeifei']

MaRuipeng

ChenYuheng

练习题

(初期练习题比较简单,跟老师讲的内容重合,后面学的知识多了,后面的练习题会比较有意思)

  1. 创建一个空列表,命名为names,往里面添加 Lihua、Rain、Jack、Xiuxiu、Peiqi和Black元素。

作业1:

#1、创建一个空列表,命名为names,往里面添加 Lihua、Rain、Jack、Xiuxiu、Peiqi和Black元素。

names = []

names.append("Lihua")

names.append("Rain")

names.append("Rain")

names.append("Jack")

names.append("Xiuxiu")

names.append("Peiqi")

names.append("Black")

print(names)

往(1)中的names列表里Black前面插入一个Blue。

作业2:

names.insert(-1,"Blue")

插入数据用insert不是用append

  1. 取出names列表中索引4-7的元素。

作业3:

print(names[4:8])

索引4-7:要注意[:]方法包括前面的索引不包括后面的索引,所以如果想要取出索引为4-7的元素,记得+1!

  1. 把names列表中Xiuxiu的名字改成中文。

作业4:

names[4]="秀秀"

print(names)

运行结果:['Lihua', 'Rain', 'Rain', 'Jack', '秀秀', 'Peiqi', 'Blue', 'Black']

  1. 返回names列表中Peiqi的索引值(下标)。
res = names.index("Peiqi")

print(res)

运行结果:5

  1. 创建新列表[1,2,3,4,2,5,6,2],合并到names列表中。

百度到有两种方法可以解决这个问题:

  1. extend都可以用来合并两个列表,extend是在原列表修改,
  2. 用 + 生成新的列表

作业6:

(1)用+号连接两个列表

names = []

names.append("Lihua")

names.append("Rain")

names.append("Rain")

names.append("Jack")

names.append("Xiuxiu")

names.append("Peiqi")

names.append("Black")

names.insert(-1,"Blue")

num=[1,2,3,4,2,5,6,2]

res = names+num

print(res)

(2)用extend连接两个列表

names = []

names.append("Lihua")

names.append("Rain")

names.append("Rain")

names.append("Jack")

names.append("Xiuxiu")

names.append("Peiqi")

names.append("Black")

names.insert(-1,"Blue")

num=[1,2,3,4,2,5,6,2]

names.extend(num)

print(names)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值