目录
(3)pop() : 删除指定下标的数据(默认为最后一个),并返回该数据。
(5)clear() : 清空列表中的所有数据,保留一个空列表
一、列表的应用场景
思考:有一个人的姓名(TOM)怎么书写存储程序?
答:变量
思考:如果一个班级100位学生,每个人的姓名都要存储,应该如何书写程序?声明100个变量吗?
答:使用列表,列表可以一次性存储多个数据。
二、列表的格式
[数据1,数据2,数据3...]
列表可以一次性存储多个数据,且可以为不同数据类型。
三、列表的常用操作
1. 查找数据
(1)下标
my_list = ['a','b','c','d']
print(my_list[0]) # a
print(my_list[1]) # b
print(my_list[2]) # c
(2)函数
- index() 返回指定位置所在位置的下标,查找的数据不存在则报异常
- count() 统计指定数据在当前列表中出现的次数。
- len() 访问列表长度,即列表中数据的个数。
lan_list = ['c','java','python','c++','python']
# index()
print(lan_list.index('python',0,3)) # 2
# count()
print(lan_list.count('python')) # 2
# len()
print(len(lan_list)) # 5
(3)判断
判断某个数据是否在列表中,返回布尔型True或False。
- in 判断指定数据在某个列表中,如果在返回True,否则返回False
- not in 判断指定数据不在某个列表中,如果不在返回True,否则返回False
lan_list = ['c','java','python','c++']
# in
print('python' in lan_list) # True
print('aaa' in lan_list) # False
# not in
print('python' not in lan_list) # False
print('aaa' not in lan_list) # True
2. 增加数据
作用:增加指定的数据到列表中
(1)append()
作用:列表结尾追加数据。
语法:
列表序列.append(数据)
注意:列表追加数据的时候,直接在原列表里面追加了数据,即修改了原列表,故列表为可变类型数据
name_list = ['小明','张三','Cindy']
name_list.append('李四')
print(name_list) # ['小明', '张三', 'Cindy', '李四']
(2)extend()
作用:列表结尾追加数据,如果追加的数据是一个序列,则将这个序列的数据拆开逐一添加到列表;如果追加的数据是一个列表,则将这个列表拆开逐一添加到列表中。
语法:
列表序列.extend(数据)
# 追加一个序列
name_list = ['小明','张三','Cindy']
name_list.extend('李四')
print(name_list) # ['小明', '张三', 'Cindy', '李', '四']
# 追加一个列表
name_list1 = ['小明','张三','Cindy']
name_list1.extend(['李四','王五'])
print(name_list1) # ['小明', '张三', 'Cindy', '李四', '王五']
(3)insert()
作用:在指定位置增加数据
列表序列.insert(位置下标,数据)
name_list2 = ['小明','张三','Cindy']
name_list2.insert(1,'小花')
print(name_list2) # ['小明', '小花', '张三', 'Cindy']
3. 删除数据
(1)del 删除列表(删除后整个列表就不存在了)
del 目标
(2)del 删除指定下标的数据
del 列表[下标位置]
(3)pop() : 删除指定下标的数据(默认为最后一个),并返回该数据。
列表序列.pop(下标)
(4)remove() :移除列表中某个数据的第一个匹配项
列表序列.remove(数据)
(5)clear() : 清空列表中的所有数据,保留一个空列表
列表序列.clear()
快速体验:
# 5.1 del --删除整个列表
name_list3 = ['小明', '小花', '张三', 'Cindy']
del name_list3
print(name_list3) # 报出异常,列表不存在
# 5.2 del --删除指定下标数据
name_list4 = ['小明', '小花', '张三', 'Cindy']
del name_list4[1]
print(name_list4) # ['小明', '张三', 'Cindy']
# 5.3 pop() --删除指定下标的数据,如果不指定下标,默认删除最后一个数据、
# 不带下标
name_list5 = ['小明', '小花', '张三', 'Cindy']
name_list5.pop()
print(name_list5) # ['小明', '小花', '张三']
# 带下标
name_list6 = ['小明', '小花', '张三', 'Cindy']
name_list6.pop(1)
print(name_list6) # ['小明', '张三', 'Cindy']
# 5.4 remove() --移除列表中某个数据的第一个匹配项
name_list7 = ['小明', '小花', '张三', 'Cindy','小花']
name_list7.remove('小花')
print(name_list7) # ['小明', '张三', 'Cindy', '小花']
# 5.5 clear() --清空列表中的数据
name_list8 = ['小明', '小花', '张三', 'Cindy']
name_list8.clear()
print(name_list8) # []
4. 修改数据
(1)修改指定下标数据
(2)逆置 :reverse()
(3)排序:sort()
注意:reverse表示排序规则,reverse=True降序,reverse=False升序(默认)
快速体验:
# 1.修改指定下标的数据
name_list1 = ['小明', '小花', '张三', 'Cindy']
name_list1[0] = '大明'
print(name_list1) # ['大明', '小花', '张三', 'Cindy']
# 2.reverse() --逆序
name_list2 = [1,3,2,5,6,4,8]
name_list2.reverse()
print(name_list2) # [8, 4, 6, 5, 2, 3, 1]
# 3.sort() --排序 升序和降序 默认升序
# 升序
name_list3 = [1,3,2,5,6,4,8]
name_list3.sort()
print(name_list3) # [1, 2, 3, 4, 5, 6, 8]
# 降序
name_list4 = [1,3,2,5,6,4,8]
name_list4.sort(reverse=True)
print(name_list4) # [8, 6, 5, 4, 3, 2, 1]
5. 复制
函数:copy()
快速体验:
name_list1 = ['小明', '小花', '张三', 'Cindy']
name_list2 = name_list1.copy()
print(name_list1) # ['小明', '小花', '张三', 'Cindy']
print(name_list2) # ['小明', '小花', '张三', 'Cindy']
四、列表的循环遍历
依次打印列表中的各个数据
1. while
使用while循环,依次打印列表中的各个数据。
name_list = ['小明', '小花', '张三', 'Cindy']
i = 0
while i < len(name_list):
print(name_list[i])
i += 1
---运行结果---
小明
小花
张三
Cindy
2. for
使用for循环,依次打印列表中的各个数据。
name_list = ['小明', '小花', '张三', 'Cindy']
for i in name_list:
print(i)
五、列表嵌套
所谓列表嵌套,指的是一个列表里面包含了其他的子列表。
快速体验:
name_list =[['小明', '小花', '张三'],[1,2,33],['test','hello']]
print(name_list) # [['小明', '小花', '张三'], [1, 2, 33], ['test', 'hello']]
print(name_list[0]) # ['小明', '小花', '张三']
print(name_list[0][1]) # 小花