目录
前言
这回来学一下列表这个玩意,这种数据类型在后续的学习中,会经常提到!也是变成中最常用的一类数据。
列表
列表是什么?其实就是可以存储很多个数据一种数据类型,你可以想想把字符串等,数字等数据都可以往里面加,重点是这列表还允许重复出现相同类型的数据。
列表查找
跟字符串一样,列表也是具备查找功能,有查找就有索引,那索引上回说字符串的也解释过了,这里也不赘述了!所以咱们直接看列表的索引具体是怎么发挥作用的。
1. 索引(下标)
练习代码
name_list = ['Tom','Julia','Rose','lily']
print(name_list[0]) # 找到Tom
print(name_list[3]) # 找到lily
2. index()函数
用于寻找列表中存在的数据,并且返回该数据的下标位置。
语法:列表序列.index[‘数据’,开始位置下标,结束位置下标]
练习代码
name_list = ['Tom','Julia','Rose','lily']
print(name_list.index('Tom')) # 0
print(name_list.index('Tom',0,2)) # 0
3. count()该函数
用于计算,某个数据的所存在的数量
语法: 列表序列.count(“数据”)
练习代码
name_list = ['Tom','Julia','Rose','lily']
print(name_list.count("Tom")) # 返回值 1
4. len()函数
用于访问列表的长度,也就是列表所存在多少个数据
语法: len(列表序列)
练习代码
name_list = ['Tom','Julia','Rose','lily']
print(len(name_list)) # 返回值 4
列表判断
1. in
判断指定某个数据 是否存在于 该某个序列中如果存在就会返回值 True 不存在就会返回值False
语法:“数据” in 列表序列
练习代码
name_list = ['Tom','Julia','Rose','lily']
print('Tom' in name_list) # 返回值 True
print('lisaby' in name_list) #返回值 False
2. not in
判断某个数据不存在于某个序列里如果不存在就会返回True ,存在就会返回值False
语法:“数据” not in 列表序列
练习代码
name_list = ['Tom','Julia','Rose','lily']
print('Tom' not in name_list) # 返回值 False
print('lisaby' not in name_list) # 返回值 True
3.体验案例
需求:要让用户输入名字,判断是否存在
练习代码
name_list = ['Tom','Julia','Rose','lily']
name = input("请输入名字:")
if name in name_list:
print(f"您"
f"输入的名字{name}存在")
else:
print(f"您输入的名字{name}不存在")
列表增删
作用:增加或者删除列表中被指定的数据
1. append()
在列表的最末端逐一添加数据
语法:列表序列.append(“数据”)
练习代码
name_list = ['Tom','Julia','Rose','lily']
name_list1 = ['Tom','Julia','Rose','lily']
name_list.append("lishaaaaa")
print(name_list)
name1 =name_list.append(name_list1)
print(name_list)
注意:如果append 追加的是一个序列,则会将整个序列的数据追加
2. extend()
在列表的最尾端逐一添加 单个字符数据。
语法:列表序列.extend(“数据”)
练习代码
name2_list = ["Tom"]
name2_list.extend("abcdefg")
print(name2_list)
name2_list.extend(["caie","cieae"])
print(name2_list)
注意:该函数是将数据逐一添加在 某序列结尾
3. insert()
指定位置增加数据
语法:列表序列.insert(添加数据的下标位置,”数据“)
练习代码
name_list = ['Tom','Julia','Rose','lily']
name_list.insert(1,"BBC")
print(name_list)
4. del 删除
语法:del 目标
练习代码
name_list = ['Tom','Julia','Rose','lily']
del name_list[0]
print(name_list) #删除指定列表的某个数据
del name_list #删除整个列表
5. pop()
删除指定下标的数据,如果不指定直接删除列表结尾一个数据
语法:列表序列.pop(下标)
练习代码
name_list = ['Tom','Julia','Rose','lily']
pop_name = name_list.pop()
pop_name1 = name_list.pop(1)
print(name_list)
print(pop_name)
print(pop_name1)
注意:pop()如果没有指定索引,那会直接删除列表最后一个数据,但是无论是上述两种方式,结果都是pop函数都会返回这个被删除的数据!
6. remove()
删除指定的特定数据
语法:列表序列.remove(“数据”)
练习代码
name_list = ['Tom','Julia','Rose','lily']
name_list.remove("Tom")
print(name_list)
7. clear()
删除整个列表里的数据,清空
语法:列表序列.clear()
练习代码
name_list = ['Tom','Julia','Rose','lily']
name_list.clear()
print(name_list)
列表修改
1. 修改指定下标的数据
练习代码
name_list = ['Tom','Julia','Rose','lily']
name_list[0] = "aaa"
print(name_list)
2. reverse()
将列表数据倒序,逆置
语法:列表序列.reverse()
练习代码
name_list = ['Tom','Julia','Rose','lily']
name_list.reverse()
print(name_list)
3. sort()
排序,理清顺序!默认升序
语法:列表序列.sort(key = None, reverse = False)
key是指定的排序标准的函数
reverse表示排序规则,reverse = True 降序,reverse = False 升序 (默认)
练习代码
num_list = [1,3,4,9,2,7,8,5,0,6]
num_list.sort(reverse = True)
列表复制
copy()
将想要复制的列表序列,直接复制到新变量中
语法:原列表序列.copy()
练习代码
name_list = ["Tom","lisi","Julia","agitou"]
name_list1 = name_list.copy()
print(name_list1)
注意:如果将列表 赋予 给另外一个变量,虽然也能得到相对应的列表,但是该新变量要是发生改变,旧变量也会发生变化,这种的不属于拷贝范围。
实例代码:请注意区别两者真复制和伪复制
name_list = ["Tom","lisi","Julia","agitou"]
name_list2 = name_list
print(name_list2)
name_list2[0] = "caec"
print(name_list)
列表循环遍历
列表的循环遍历就是将,这个数据内所有的子数据逐一给提取出来的过程叫做遍历。
然后我们在学习了循环语句,知道的有两个循环关键词,分别是while和for,这两个都可以对其循环遍历。
1.while循环遍历
name_list = ["Tom","lisi","Julia","agitou"]
i = 0
while i < len(name_list):
print(name_list[i])
i += 1
2.for循环遍历
name_list = ["Tom","lisi","Julia","agitou"]
for x in name_list:
print(x)
可以看得出来for循环遍历要比whlie简洁并且简单
列表嵌套
嵌套列表也就是所谓”2D列表“,就是一个列表里存在子列表,简单就是列表里加列表。
可以通过下标的方式 找到特定的数据,每个子列表
name_list = [['1','2','3'],['4','5','6'],['7','8','9']]
num = name_list[0][1] # 这句的意思是,从第一个大框中,选择下标为0的数据,然后在对下标为的数据,再次索引到这个数据下标的数据
print(num) # 会输出2
列表的综合应用
需求:有三个办公室,然后要将8位老师随机分配到该教室中
逻辑:1.三个空办公室,八个老师 2.随机分配到三个办公室中
解体代码
offices = [[],[],[]]
teachers = ["李老师","王老师","牛老师","黄老师","庄老师","陈老师","毕老师","何老师"]
import random
for name in teachers:
num = random.randint(0,2)
offices[num].append(name)
i = 1
for office in offices:
print(f"办公室{i}人数为{len(office)}")
for name in office:
print(name,end = '')
print()
i += 1
总结
上述就是列表常用的函数,以及一些细节,接下来我们要学习字典的增删查找改!