提示:
python列表相关(就是其他语言中的数组)
文章目录
列表的创建
1.lst=[‘hello’,‘world’,‘98’]
2.lst=list([‘hello’,‘world’,‘98’])
列表的查询
元素是否存在与遍历
lst=[10,20,30,40,50,60,70,80,90]
print('p'in'python')
print(10 in lst)
#遍历
for i in lst:
print(i)
获取指定元素索引
print(lst.index(‘hello’))#0
print(lst.index(‘hello’,1,4))#左闭右开 ValueError: ‘hello’ is not in list
由索引获取单个元素
有正向索引和逆向索引
正向索引:0 ~ N-1
逆向索引:- N ~ -1
不存在抛出索引异常
获取多个元素:切片
lst=[10,20,30,40,50,60,70,80,90]
print('yuanliebiao',id(lst))
print(lst[1:8:2],id(lst))#对列表直接切片,id不变
print(lst[::-1])#相当于倒序[90, 80, 70, 60, 50, 40, 30, 20, 10]
print(lst[8::-2])#[90, 70, 50, 30, 10]
print(lst[7:0:-2])#[80, 60, 40, 20]
列表倒序 lst[::-1]
列表的增删改
增
lst=[1,2,3]
lst.append(4)#id不变
lst2=['hello','world']
lst.append(lst2)
print(lst)#[1, 2, 3, 4, ['hello', 'world']]lst2作为整体一个元素加入lst中
lst.extend(lst2)
print(lst)#[1, 2, 3, 4, ['hello', 'world'], 'hello', 'world']
lst.insert(1,90)#1的位置上加90
print(lst)#[1, 90, 2, 3, 4, ['hello', 'world'], 'hello', 'world']
lst3=[True,False,'lj']
lst[1:]=lst3
print(lst)#[1, True, False, 'lj']
lst[1:2]=lst3
print(lst)#[1, True, False, 'lj', False, 'lj']注意此处为替换
删
lst=[1,2,3,4,5,3,6]
lst.remove(3)#删除指定元素,若指定元素重复,仅删第一个;无该元素报错
print(lst)#[1, 2, 4, 5, 3, 6]
lst.pop(3)#删除指定位置(索引)元素,不存在报错;不指定索引删除最后一个元素
print(lst)#[1, 2, 4, 3, 6]
print(id(lst))
new_lst=lst[1:3]#切片!!!!产生新的列表,原列表不发生改变,实际上就是选取部分元素赋值给新列表
print(lst)#[1, 2, 4, 3, 6]
print(new_lst)#[2, 4]
lst.clear()#清空列表
print(lst)#[]
del(lst)#删除列表
print(lst)#NameError: name 'lst' is not defined
改
lst=[1,2,3,4,5,6]
lst[1]=66#指定索引替换
print(lst)#[1, 66, 3, 4, 5, 6]
lst[2:4]=[77,88]#切片
print(lst)#[1, 66, 77, 88, 5, 6]
列表的排序
sort()方法
sort()方法默认升序,从小到大。reverse=False
lst=[1,2,3,4,5]
lst.sort()#升序
lst.sort(reverse=True)#降序
内置函数sorted()
与sort()区别在,内置函数生成新的列表对象
lst=[1,2,3,4,5]
new_lst1=sorted(lst)#升序
print(new_lst1)
new_lst2=sorted(lst,reverse=True)
print(new_lst2)
列表生成式
i*i for i in range(1,10)
lst=[i for i in range(1,11)]
print(lst)#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#输出偶数
lst2=[i*2 for i in range(1,6)]
print(lst2)#[2, 4, 6, 8, 10]