一、列表的定义
变量只能装载一个元素,而列表等同一个箱子能装多个同样或者不同的元素
变量存储的是单个的type,id,value(一个对象的引用)
列表存储的是多个对象的引用
lst=['ab','cd',12]
包含的是列表的id,type和lst的值
二、列表的两种创建方式
第一种:利用[ ]包含他创建
lst=['abcd'] lst=['ab','cd']
列表在[ ]中的元素需要用,进行间隔
第二种:利用list()函数进行创建
AE86=list(['周杰伦','藤原拓海','86']) print(type,'AE86')
列表命名的规则与变量命名规则一致
列表的特点
2、列表的元素是通过索引获取
lst=['hello','world','123','95.6','world','125','world'] print(list,[0])#hello的位置 print (list,[-1])#world的位置
3,列表可以存储同样的元素 4、任意类型数据混存 5、根据动态需要回收内存
(不用担心列表的存储量的多和少)
列表的查询操作
获取指定元素
1)有相同元素查找
lst=['hello','world','123','hello']
print(lst.index('hello'))#如果列表中有相同的元素,只获取列表中第一个元素的索引
#index(获取索引)置'
2)列表元素不存在则会输出value
不能获取到列表里没有的元素(都没有怎么可能查到)
3)可以进行区间查找
lst=['hello','world','123','hello',]
print(lst.index('123',1,3))#123
print(lst.index('123',0,1))#123
#hello为0开始,如果查找范围没有也会输出错误
2、获取单个元素
lst=['hello','world','86','hello','world','86'] print(lst[2])#正向获取索引2的元素 print(lst[-2])#负向索引 #print(lst[22])#不存在索引位置的元素,输出inddxError
3、获取列表多个元素
lst=[0,20,30,40,50,60,70,80,90]
print('整个列表',id(lst))
lst2=lst[0:3:1]#lst2从lst切出0-3之间的元素
print('切片内容',id(lst2))
print(lst2)#[0, 20, 30]
lst3=lst[0:3]#第一种默认步长
lst4=(lst[0:3])#第二种默认步长
lst5=lst[:3:1]#默认切片开始位置
lst5=lst[:3:2]#默认切片开始位置 每两个元素切一个(步长)
lst6=lst[::-1]#默认起点和结束,由最后开始往前切
lst7=lst[7::-1]#从80开始往回数,[80, 70, 60, 50, 40, 30, 20, 0]
print(lst2, lst3,lst4,lst5,lst6,'a',lst7)
列表元素的判断及遍历
lst=[0,20,30,40,50,60,70,80,90]
print(80 in lst)#80是存在的所以true
print(100 in lst)#100不存在所以FALSE
print(100 not in lst)#100不存在在lst列表里 这句话是对的 所以True
#列表可以和变量一样作为判断和查询
for i in lst:
print(i)
三、列表的增删改
列表的增加操作
append():单个添加(添加进去的视为一个元素)
lst=[0,20,30,40,50,60,70,80,90] lst.append(100)#列表的末尾进行添加操作 print(lst)#[0, 20, 30, 40, 50, 60, 70, 80, 90, 100]id标识不变,type类型不变,变得是value的值 lst2=['GTR'] lst.append(lst2)#把lst3作为一个元素添加[0, 20, 30, 40, 50, 60, 70, 80, 90, 100, ['GTR']] print(lst)
extend():多个添加
lst=[0,20,30,40,50,60,70,80,90] lst2=['AE86'] lst.extend(lst2) print(lst)#一个一个添加进去,把他们将其合并一起[0, 20, 30, 40, 50, 60, 70, 80, 90, 100, 'AE86']
insert():任意位置添加
lst=[0,20,30,40,50,60,70,80,90] lst2=['AE86','GTR'] lst.insert(4,50)#在第四个位置添加50 print(lst)
切片:任意位置添加元素
lst=[0,20,30,40,50,60,70,80,90] lst3=['AE86','ata','X8'] lst[1:]=lst3#切掉第一个数后面的形成lst3 print(lst)#[30, ['AE86', 'ata', 'X8'], 40, 50, 60, 70, 80, 90]lst3列表的删除操作
remove():移除一个元素
lst=[0,20,80,30,40,50,60,70,80,90] #lst.remove(90)lst列表中移除一个元素(80) lst.remove(80)#存在相同元素 移除第一个[0, 20, 30, 40, 50, 60, 70, 80, 90] print(lst)
pop():移除制定位置元素
lst=[0,20,80,30,40,50,60,70,80,90] lst.pop(1)#移除一号位置上的元素 print(lst)#[0, 80, 30, 40, 50, 60, 70, 80, 90]
lst=[0,20,80,30,40,50,60,70,80,90] lst.pop()#不指定参数,默认移除最后一个 print(lst)#[0, 20, 80, 30, 40, 50, 60, 70, 80]
切片:至少删除一个元素,但是会产生新的列表对象
lst=[0,20,80,30,40,50,60,70,80,90] lst2=lst[3:6]#保留3-6位置,其余删除 print(lst2)#[30, 40, 50] lst[3:6]=[]#删除3-6 print(lst)#[0, 20, 80, 60, 70, 80, 90]
clear():清空
lst=[0,20,80,30,40,50,60,70,80,90] lst.clear()#清空列表元素 print(lst)#输出[]
del():直接删除列表
lst=[0,20,80,30,40,50,60,70,80,90] del lst#删除整个列表 print(lst)#NameError: name 'lst' is not defined列表元素的改
为指定元素赋予新元素值
lst=[0,20,80,30,40,50,60,70,80,90] lst[2]=25#修改第二个位置的元素为25 print(lst)#[0, 20, 25, 30, 40, 50, 60, 70, 80, 90]
将切片区域赋予新的元素
lst=[0,20,80,40,50,60,70,80,90] lst[1:4]=[200,800]#修改1-4位置的元素为200,800 print(lst)#[0, 200, 800, 50, 60, 70, 80, 90]四、列表的排序操作
sort():利用True和FALSE进行升降
lst=[10,70,80,50,40,90,60,0,20]
lst.sort()#排序
print('升序',lst)#输出[0, 10, 20, 40, 50, 60, 70, 80, 90]
#排序是在原列表上进行
lst.sort(reverse=True)
print('降序',lst)#[90, 80, 70, 60, 50, 40, 20, 10, 0]
lst.sort(reverse=True)
print('升序',lst)#升序 [90, 80, 70, 60, 50, 40, 20, 10, 0]
sorted():
lst=[10,70,80,50,40,90,60,0,20] new_list=sorted(lst) print(lst)#lst不变[10, 70, 80, 50, 40, 90, 60, 0, 20] print(new_list)#一个新的排序[0, 10, 20, 40, 50, 60, 70, 80, 90] sencond=sorted(lst,reverse=True)#与上同理 print(sencond)#[90, 80, 70, 60, 50, 40, 20, 10, 0]五、列表生成式
lst=[i for i in range(1,9)]#第一个i可以自定义表达式,第二个i可以自定义变量 print(lst)#[1, 2, 3, 4, 5, 6, 7, 8] lst=[i*2 for i in range(1,9)] print(lst)#[2, 4, 6, 8, 10, 12, 14, 16] lst=[i*i for i in range(1,9)] print(lst)#[1, 4, 9, 16, 25, 36, 49, 64] lst=[i%2 for i in range(50,100)] print(lst)#[0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]



