列表
1. 掌握列表的定义和特点
2. 熟悉列表的相关操作
3. 掌握列表的遍历
4. 掌握列表的嵌套
前面我们已经学到了变量和字符串等用来存储数据知识,那么我们为什么还要学习这一种变量类型?试想一下,当我们要把一个班的同学都放到计算机里面,假设一班有30个同学,那么我们就需要实例化30个变量,这显然是很麻烦的,那么我们有没有一种方法可以一次性存储多个变量呢?这时候列表就可以很好的解决我们的问题。
列表的格式
列表· 名 = [数据1,数据2,数据3]
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
python列表比C语⾔的数组强⼤的地⽅在于列表中的元素可以是不同类型的数据
打印列表
打印列表和我们前面学到的打印字符串指定内容一样。
语法: print( 列表名【下标】)
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
print(namesList[0])
print(namesList[1])
print(namesList[2])
列表的相关操作
列表中存放的数据是可以进⾏修改的,⽐如"增"、"删"、"改"、"查"
1.下标
和字符串⼀样,列表也可以通过下标(索引)访问元素,下标也是从0开始
name_list = ['Tom', 'Lily', 'Rose']
print(name_list[0]) # Tom
print(name_list[1]) # Lily
print(name_list[2]) # Rose
2.查找函数
index():返回指定数据所在位置的下标 。
语法:
列表序列.index(数据, 开始位置下标, 结束位置下标)
name_list = ['Tom', 'Lily', 'Rose']
print(name_list.index('Lily', 0, 2)) # 1
注意:index()查找函数与字符串中的index()查找函数一样,如果查找不到指定目标报错
count():返回统计指定数据在当前列表中出现的次数。
name_list = ['Tom', 'Lily', 'Rose']
print(name_list.count('Lily')) # 1
len():返回访问列表⻓度,即列表中数据的个数。
name_list = ['Tom', 'Lily', 'Rose']
print(len(name_list)) # 3
3.判断是否存在
in:判断指定数据在某个列表序列,如果在返回True,否则返回False
name_list = ['Tom', 'Lily', 'Rose']
# 结果:True
print('Lily' in name_list)
# 结果:False
print('Lilys' in name_list)
not in:判断指定数据不在某个列表序列,如果不在返回True,否则 返回False
name_list = ['Tom', 'Lily', 'Rose']
# 结果:False
print('Lily' not in name_list)
# 结果:True
print('Lilys' not in name_list)
4.添加元素("增"append, extend, insert)
append()
append()在列表的末尾添加,如果append()追加的数据是⼀个序列,则追加整个序列到列表
#定义变量A,默认有3个元素
A = ['xiaoWang','xiaoZhang','xiaoHua']
print("-----添加之前,列表A的数据-----")
for tempName in A:
print(tempName)
#提示、并添加元素
temp = input('请输⼊要添加的学⽣姓名:')
A.append(temp)
print("-----添加之后,列表A的数据-----")
for tempName in A:
print(tempName)
name_list = ['Tom', 'Lily', 'Rose']
name_list.append(['xiaoming', 'xiaohong'])
# 结果:['Tom', 'Lily', 'Rose', ['xiaoming', 'xiaohong']]
print(name_list)
extend()
通过extend可以将另⼀个集合中的元素逐⼀添加到列表中
insert()
在指定位置插入指定内容/
语法:
insert(插入的下标, 插入的内容)
5、删除元素("删"del, pop, remove)
在现实生活中,也常有同学掉班和转学的情况,那么删除列表的元素也是经常的操作。我们应该如何完成删除操作?
列表元素的常⽤删除⽅法有:
del:根据下标进⾏删除
pop:删除最后⼀个元素
remove:根据元素的值进⾏删除
del 根据下标进⾏删除
语法:
del 目标【下标】
movieName = ['加勒⽐海盗','骇客帝国','第⼀滴⾎','指环王','霍比特人']
print('------删除之前------')
for tempName in movieName:
print(tempName)
del movieName[2] #删除指定数据
# del movieName #删除列表
print('------删除之后------')
for tempName in movieName:
print(tempName)
pop 删除最后⼀个元素
语法:
目标.pop()
movieName = ['加勒⽐海盗','骇客帝国','第⼀滴⾎','指环王','霍比特人']
print('------删除之前------')
for tempName in movieName:
print(tempName)
movieName.pop()
# pop删除列表
print('------删除之后------')
for tempName in movieName:
print(tempName)
remove 根据元素的值进⾏删除
语法:
目标.remove(要删除的数据)
movieName = ['加勒⽐海盗','骇客帝国','第⼀滴⾎','指环王','霍比特人']
print('------删除之前------')
for tempName in movieName:
print(tempName)
movieName.remove('骇客帝国')
# pop删除列表
print('------删除之后------')
for tempName in movieName:
print(tempName)
特殊:clear,清空列表
语法:
目标.clear()
movieName = ['加勒⽐海盗','骇客帝国','第⼀滴⾎','指环王','霍比特人']
print('------删除之前------')
print(movieName)
movieName.clear()
print('------删除之后------')
print(movieName)
6、列表修改数据(sort, reverse)
1.修改指定下标数据
修改指定下标的数据其实就是对指定下标的数据重新赋值。
name_list = ['Tom', 'Lily', 'Rose']
name_list[0] = 'aaa'
# 结果:['aaa', 'Lily', 'Rose']
print(name_list)
2、逆序
将列表的内容顺序按相反排列(降序变正序,正序变逆序)
语法:
目标列表.reverse()
num_list = [1, 5, 2, 3, 6, 8]
num_list.reverse()
# 结果:[8, 6, 3, 2, 5, 1]
print(num_list)
3.排序
sort⽅法是将list按特定顺序重新排列,默认为由⼩到⼤,参数 reverse=True可改为倒序,由⼤到⼩。
语法:
列表序列.sort( key=None, reverse=False)
注意:reverse表示排序规则,reverse = True 降序, reverse = False 升序(默认)
num_list = [1, 5, 2, 3, 6, 8]
num_list.sort()
# 结果:[1, 2, 3, 5, 6, 8]
print(num_list)
7、复制
copy()
简单来说就是一个变量的数据复制一份给另一个变量(和普通的赋值相比,复制的数据是独立的,有独立的IP)
语法:
复制给的变量 = 要复制的变量.copy()
movieName = ['加勒⽐海盗','骇客帝国','第⼀滴⾎','指环王','霍比特人']
asd = movieName.copy()
print(movieName)
print(asd)
print(id(movieName))
print(id(asd))
8.列表的遍历
1.while遍历
name_list = ['Tom', 'Lily', 'Rose']
i = 0
while i < len(name_list):
print(name_list[i])
i += 1
2.for遍历
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
for name in namesList:
print(name)
9、列表的嵌套
所谓列表嵌套指的就是⼀个列表⾥⾯包含了其他的⼦列表。
name_list = [['⼩明', '⼩红', '⼩绿'], ['Tom', 'Lily', 'Rose']]
#查找列表的第一个下标数据内容
print(name_list[0])
#查找第二个列表的第一个子数据
print(name_list[1][0])