2021-09-09
视频链接
列表
课程介绍
1、列表的创建于删除
2、列表的查询操作
3、列表元素的增、删、改操作
4、列表元素的排序
5、列表推导式
45、为什么需要列表
变量可以存储一个元素,列表是一个大容器,可以存储多个元素
列表相当于其它语言中的数组
变量存储的是一个对象的引用,列表存储的是多个对象的引用
#变量存储的是一个对象的引用,列表存储的是多个对象的引用,
a=10
lst=['hello','world',98] #列表存储了列表内每一个对象的信息,包括id、type、value
print(id(lst)) #同时列表本身也具有一个id地址
print(type(lst))
print(lst)
46、列表的创建
使用 [] 代表列表; 元素之间用 , 分割
lst=['hello','world',98] # 创建列表的第一种方式,用方括号
lst1=list(['hello','world',98]) # 第二种方式,list()函数
47、列表的特点
1、列表元素按顺序有序排序
2、索引映射唯一一个数据
3、列表可以存储重复数据
4、任意数据类型混存
5、根据需要动态分配和回收内存
48、获取指定元素的索引,列表查询操作
1、如果列表中存在多个相同元素的话,lst.index只返回相同元素的第一个元素的缩影
2、可以在指定查找范围内进行索引查找
lst=['hello','world',98,'hello']
print(lst.index('hello')) # 只返回相同元素的第一个元素的索引
# print(lst.index('python')) #'python' is not in list
# print(lst.index('hello',1,3)) # 'hello' is not in list
print(lst.index('hello',1,4)) # 3
49、获取列表中指定的元素
获取单个元素
正向索引从0到N-1
你想索引从-N到-1
##49、获取列表中指定的元素
lst=['hello','world',98,'hello','world',234]
print(lst[2]) #获取索引为2的元素
print(lst[-3]) #获取索引为-3的元素
#不能获取超出列表指定范围的索引所代表的的元素
#print(lst[10]) #list index out of range
50、列表元素的查询操作
获取列表中的多个元素
列表名[start:stop:step]
lst=[10,20,30,40,50,60,70,80]
print(lst[1:6:1]) #lst[start:stop:step]
lst1=lst[1:6:1]
print('愿列表',id(lst))
print(id(lst1)) #切片操作:切出来的列表是一个新的对象
##step为正数的切片情况
print(lst[1:6]) #默认步长为1
print(lst[1:6:]) #默认步长可以省略不写
print(lst[1:6:2])
print(lst[:6:2]) #默认start从索引0开始,可以省略不写
print(lst[1::2]) #默认stoop为列表最后一个元素,可以省略不写
#step为负数的切片情况
print('原列表:',lst)
print(lst[::-1]) ##start默认,stop默认,步长使用-1,那么第一个元素是列表的最后一个元素
#start=7,stop 省略,step=-1
print(lst[7::-1]) ## ==lst[::-1]
print(lst[6:0:-2]) ## [70, 50, 30]
51、列表元素的判断及遍历
##51、列表元素的判断及遍历
print('p' in 'python') #True
lst=[10,20,'python','hello']
print(10 in lst) #True
print(100 not in lst) # True、
#列表元素的遍历
for i in lst:
print(i)
52、列表元素的增加操作
-append-向列表的末尾添加一个元素
-extend-向列表的末尾添加至少一个元素
-insert-在任意位置上添加一个元素
切片-在任意的位置上添加N多个元素
##52、列表元素的增加操作
#-append-向列表的末尾添加一个元素
lst=[10,20,30]
print('添加元素之前',lst,id(lst))
lst.append(100)
print('添加元素之后',lst,id(lst)) ## 列表还是同一个列表
#-extend-向列表的末尾添加至少一个元素
lst2=['hello','world']
lst.append(lst2) # 将lst2作为一个元素添加到列表的末尾
lst.extend(lst2) # 将lst2的每一个元素添加到列表的末尾
#-insert-在任意位置上添加一个元素
lst.insert(1,90) # 在1位置上添加90这个元素
print(lst)
#切片-在任意的位置上添加N多个元素
lst3=[True,True,'hello']
lst[1:]=lst3 # 一个:时,默认step为1
print(lst)
53、列表元素的删除操作
remove--一次删除一个元素,重复元素只移除第一个
pop--删除一个指定索引位置上的元素
切片--一次至少删除一个元素
clear--清除列表
del--删除列表
##53、列表元素的删除操作
#remove--一次删除一个元素,
lst=[10,20,30,40,50,60,30]
lst.remove(30) # 如果有重复元素只移除第一个
print(lst)
lst.pop(1) #移除索引位置为1的元素
lst.pop() # 不指定参数,则删除列表的最后一个元素
print(lst)
lst[1:3]=[] # 切片对于删除的地方,用空列表替代
print(lst)
lst.clear() # 清除列表中所有元素
print(lst)
del lst # 直接删除lst这个列表对象
print(lst)
54、列表元素的修改操作
指定索引的元素赋予一个新值
指定一个切片内的元素赋予一个新值
lst=[10,20,30,40]
lst[2]=100 ## 针对一个位置修改
lst[1:3]=[100,200,300,400] ##指定切片的位置修改,可以去掉两个元素,加上多个元素
55、列表元素的排序操作
调用sort()方法,默认从小打大,可以指定reverse=True,进行降序排序
默认函数sorted
lst=[50,10,20,30,40]
lst.sort() # [10, 20, 30, 40, 50]
lst.sort(reverse=True) # [50, 40, 30, 20, 10]
lst=sorted(lst,reverse=True) # 使用默认函数sorted对列表排序
56、列表生成式
列表生成式即产生列表的式子
语法格式
[ii for i in range(1,10)]
列表元素的表达式ii 自定义变量i 可迭代对象range(1,10)
lst=[i for i in range(1,10)]
lst=[i*i for i in range(1,10)]
#列数中的元素的值为2,4,6,8,10
lst=[i*2 for i in range(1,6)]