0.列表的定义
1.一个列表需要用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开
代码格式:
students = ['小明','小红','小白']
列表名 赋值号 中括号 逗号
1. 索引与切片
1.1索引
1.偏移量
偏移量是从0开始的,而非我们习惯的从1开始;
列表名后加带偏移量的中括号,就能取到相应位置的元素。
2.字符串的索引
通过偏移量来对列表进行索引(可理解为搜索定位),读取所需要的元素.
例如:
#正向索引下标 0 1 2
students = ['小明','小红','小白']
#逆向索引下标 -3 -2 -1
print(students[2]) # 小白
print(students[-1]) # 小白
1.2 切片
用冒号来截取列表元素的操作叫作切片,顾名思义,就是将列表的某个片段拿出来处理。这种切片的方式可以从列表中取出多个元素。
语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到字符串的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
(5)[:]或[::] 截取所有字符串
例如:
#正向 0 1 2 3 4 5
list2 = [4 ,5 ,6 ,7 ,8 ,9]
#逆向 -6 -5 -4 -3 -2 -1
1.print(list2[:]) # [4, 5, 6, 7, 8, 9]
2.print(list2[2:]) # [6, 7, 8, 9]
3.print(list2[:2]) # [4 ,5]
4.print(list2[1:3]) # [5, 6]
5.print(list2[2:4]) # [6, 7]
6.print(list2[2:5:2]) # [6, 8]
7.print(list2[-2:]) # [8, 9]
8.print(list2[:-2]) # [4, 5, 6, 7]
结论:左右空,取到头;左要取,右不取.
1.3 偏移量与切片区别
偏移量提取到的数据:元素
切片截取到的数据:列表
例如:
students = ['小明','小红','小黑']
print(students[2]) # 小黑
print(students[2:]) # ['小黑']
2. 列表元素增加:三种方法
.append()函数
.append()函数给列表增加元素,并不是生成一个新列表,而是让列表末尾只能新增一个元素。而且,列表长度可变,理论容量无限,所以支持任意的嵌套。
例如:
students = ['小明','小红','小刚']
students.append('小美')
print(students)
# ['小明','小红','小刚','小美']
.insert()函数(不推荐)
.insert()函数用来向列表中插入数据。.insert() 方法有两个参数,参数1:是要插入位置的索引值,参数2:是要插入的内容.
lst = ['Python学习手册', '核心编程']
lst.insert(1, '流畅的Python')
print(lst)
# ['Python学习手册', '流畅的Python', '核心编程']
注意:(实际操作中,不推荐使用 .insert() 方法。因为一旦使用这个方法,需要把插入位置后的每一个元素都后移一位,且发生索引值的变化,有可能给项目带来不可预测的影响。)
.extend()函数:
.extend() 方法也是在列表的最后插入内容。.extend() 方法的参数必须是可迭代对象。
执行 .extend() 方法时,会将参数内容 迭代追加 到列表结尾.
1.插入字符串
lst = ['Python学习手册', '核心编程']
lst.extend('流畅的Python')
print(lst)
# ['Python学习手册', '核心编程', '流', '畅', '的', 'P', 'y', 't', 'h', 'o', 'n']
2.插入列表
lst = ['Python学习手册', '核心编程']
lst.extend(['流畅的Python'])
print(lst)
# ['Python学习手册', '核心编程', '流畅的Python']
3.合并列表
list1 = [91, 95, 97, 99]
list2 = [92, 93, 96, 98]
list3 =list1
list3.extend(list2)
print(list3)
3. 列表元素删除:四种方法
.remove()函数
.remove() 方法可以删除指定元素名的列表元素,它的参数是要删除元素的元素名.
students = ['小明','小红','小刚','小美','小米']
students.remove('小米')
print(students)
# ['小明', '小红', '小刚', '小美']
.pop()函数
.pop()函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。(又取又删)
还可以通过输入索引参数的方法,删除指定位置的列表元素.
#1. 又取又删
students = ['小明','小红','小刚','小美','小米']
print(students.pop())
print(students)
# 小米
# ['小明', '小红', '小刚', '小美']
或者
students = ['小明','小红','小刚','小美','小米']
print(students.pop(),students)
#小米 ['小明', '小红', '小刚', '小美']
2. # .pop() 通过索引参数删除
students = ['小明','小红','小刚','小美','小米']
print(students.pop(1),students)
# 小红 ['小明','小刚','小美','小米']
.clear()函数
.clear() 方法用来将列表清空,最终会得到一个空列表.
students = ['小明','小红','小刚','小美','小米']
students.clear()
print(students) #[]
del语句
del语句非常方便,既能删除一个元素,也能一次删除多个元素,也可以从列表中删除片段或者清除整个列表
语法是:del 列表名[元素的索引]
例如:
1. del 删除指定索引的列表元素
students = ['小明','小红','小刚','小美','小米']
del students[0]
print(students) # ['小红','小刚','小美','小米']
2. del 可以通过切片来批量删除多个列表元素:
students = ['小明','小红','小刚','小美','小米']
del students[2:4]
print(students) # ['小明','小红','小米']
students = ['小明','小红','小刚','小美','小米']
del students[3:]
print(students) # ['小明','小红','小刚']
3.del 可以通过切片来清空列表
students = ['小明','小红','小刚','小美','小米']
del students[:]
print(students) # []
4. 列表元素修改
4.1 索引赋值修改
列表元素可以通过索引值赋值直接修改
students = ['小明','小红','小刚','小美','小米']
students[2]='飞科'
print(students) # ['小明', '小红', '飞科', '小美', '小米']
4.2 切片连续修改
切片获取的内容空间是连续的时候,修改时内容可以多可以少.
# 1.1 切片空间连续,可多
students = ['小明','小红','小刚','小美','小米']
students[1:4]=10,20,30,40
print(students) # ['小明', 10, 20, 30, 40, '小米']
#1.2 切片空间连续,可少
students = ['小明','小红','小刚','小美','小米']
students[1:4]=10,20
print(students) # ['小明', 10, 20, '小米']
4.3 切片对应修改
切片获取的内容空间是不连续的时候,修改时内容必须一一对应.
students = ['小明','小红','小刚','小美','小米']
students[1:4:2]=10,20
print(students) # ['小明', 10, '小刚', 20, '小米']
5. 列表元素查看
5.1 索引查询
students = ['小明','小红','小刚','小美','小米']
print(students[3]) # 小美
5.2 for 循环遍历
students = ['小明','小红','小刚','小美','小米']
for i in students:
print(i)
# 小明
# 小红
# 小刚
# 小美
# 小米
5.3 切片查看
切片不会改变数据类型。字符串切片后得到的还是字符串,列表切片后得到的还是列表
1.列表
lst = ["大圣", "飞科", "新日", "台铃", "靓仔", "石头"]
print(lst[1:4])
# ['飞科', '新日', '台铃']
2.字符串
a = 'abcdef'
print(a[1:3]) # bc
5.4 .sort() 函数:排序查看
sort() 功能:列表排序(默认小到大排序)
lst = [90,-100,2,12]
lst.sort()
print(lst)
# 从大到下排序 reverse=True 倒序
lst.sort(reverse=True)
5.5 .index() 函数
1.index 功能:获取某个值在列表中的索引
注意:存在直接返回索引号,不存在直接报错
lst = ["小明","小米","小红"]
res = lst.index("小红")
print(res) # 2
6. 列表总结
1.列表是可变数据类型,可迭代数据类型,有序的数据结构
2.列表用来储存大量数据,并且可以储存不同数据类型
3.列表就是一个容器
4.列表储存的是元素的内存地址