一、列表
1. 列表的格式
[数据1, 数据2, 数据3, 数据4......]
列表可以一次性存储多个数据,且可以为不同数据类型
2、列表的查找函数
- index():返回指定数据所在位置的下标
- count():统计指定数据在当前列表中出现的次数
- len():访问列表长度,即列表中数据的个数
列表序列.index(数据, 开始位置下标, 结束位置下标)
*注意:如果查找的数据不存在则报错
name_list = ['Tom', 'Lily', 'Rose', 'Lily']
print(name_list.index('Rose')) # 2
print(name_list.index('lisa')) # 报错
print(name_list.count('Lily')) # 2
print(name_list.count('Lilys')) # 0
print(len(name_list)) # 4
3.判断是否存在
- in:判断指定数据在某个列表序列,如果在返回True,否则返回False
- not in:判断指定数据不在某个列表序列,如果不在返回True,否则返回False
name_list = ['Tom', 'Lily', 'Rose', 'Lily']
print('Tom' in name_list) # True
print('Toms' in name_list) # False
print('Tom' not in name_list) # False
print('Toms' not in name_list) # True
4、增加
- append():列表结尾追加数据,如果数据是一个序列,追加整个序列到列表的结尾
name_lsit = ['Tom', 'Lily', 'Rose']
# name_lsit.append('zs')
# print(name_lsit) # ['Tom', 'Lily', 'Rose', 'zs']
name_lsit.append([11, 22])
print(name_lsit) # ['Tom', 'Lily', 'Rose', [11, 22]]
# 1.列表数据可改变 -- 列表可变类型
# 2.append函数追加数据的时候如果数据是一个序列,追加整个序列到列表的结尾
- extend():列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表
name_lsit = ['Tom', 'Lily', 'Rose']
# name_lsit.extend('zs')
# print(name_lsit) # ['Tom', 'Lily', 'Rose', 'z', 's']
name_lsit.extend(['zs', 'ls'])
print(name_lsit) # ['Tom', 'Lily', 'Rose', 'zs', 'ls']
# extend() 追加的数据是一个序列,把数据序列里面的数据拆开然后逐一添加到列表
- insert():指定位置新增数据
语法:
列表序列.insert(位置下标, 数据)
name_lsit = ['Tom', 'Lily', 'Rose']
name_lsit.insert(1, 'zs')
print(name_lsit) # ['Tom', 'zs', 'Lily', 'Rose']
5、删除
- del:删除
- pop():删除指定下标的数据(默认为最后一个),并返回该数据
- remove():移除列表中某个数据的第一个匹配项
- clear():清空列表
name_list = ['Tom', 'Lily', 'Rose']
# 1.del
del name_list
print(name_list) # NameError: name 'name_list' is not defined
# del 可以删除指定下标的数据
del name_list[0]
print(name_list) # ['Lily', 'Rose']
# 2.pop()
del_name = name_list.pop()
print(del_name) # Rose
print(name_list) # ['Tom', 'Lily']
del_name1 = name_list.pop(1)
print(del_name1) # Lily
# 3.remove()
name_list.remove('Rose')
print(name_list) # ['Tom', 'Lily']
# 4.clear()
name_list.clear()
print(name_list) # []
6、修改
- 通过下标修改数据
- reverse():逆序(倒序)排列
- sort():对数据进行排序
语法:
列表序列.sort(key=None, reverse=False)
注意:reverse=True降序,reverse=Flase升序(默认)
name_list = ['Tom', 'Lisa', 'Bob']
# 1.修改指定下标的数据
name_list[0] = 'ZS'
print(name_list) # ['ZS', 'Lisa', 'Bob']
# 2.逆序(倒序) reverse()
list1 = [1, 3, 5, 2, 4, 9]
list1.reverse()
print(list1) # [9, 4, 2, 5, 3, 1]
# 3.sort() 排序:升序 和 降序
list1.sort()
print(list1) # [1, 2, 3, 4, 5, 9]
list1.sort(reverse=True)
print(list1) # [9, 5, 4, 3, 2, 1]
7、复制
- copy()
name_list = ['Tom', 'Bob', 'Rose']
new_list = name_list.copy()
print(new_list) # ['Tom', 'Bob', 'Rose']
new_list1 = list(name_list)
print(new_list1) # ['Tom', 'Bob', 'Rose']
8、列表的循环遍历
name_list = ['Tom', 'Bob', 'Lisa']
i = 0
while i < len(name_list):
print(name_list[i])
i += 1
name_list = ['Tom', 'Bob', 'Lisa']
for i in name_list:
print(i)
9、列表嵌套
应用场景:要存储班级一、二、三三个班级学生姓名,且每个班级的学生姓名在一个列表
name_list = [['小米', '小明', '小红'], ['Tom', 'Bob', 'Lisa'], ['张三', '李四', '王五']]
思考:如何查找到数据李四
print(name_list[2][1]) # 李四
二、元组
1、元组的应用场景
一个元组可以存储多个数据,元组内的数据是不可修改
t1 = (12, 22, 33)
print(type(t1)) # tuple
t2 = (10,)
print(type(t2)) # tuple
t3 = (10)
print(type(t3)) # int
t4 = ('hello')
print(type(t4)) # str
t5 = ('hello',)
print(type(t5)) # tuple
2、元组的常见操作
- 按下标查找数据
- index():查找某个数据,如果数据存在返回对应的下标,否则报错
- count():统计某个数据在当前元组出现的次数
- len():统计元组中数据的个数
t1 = ('aa', 'bb', 'cc', 'dd')
print(t1[0]) # aa
print(t1.index('dd')) # 3
print(t1.index('ee')) # 报错
print(t1.count('aa')) # 1
print(len(t1)) # 4