目录
列表在计算机中的存储方式
列表的创建
# 列表 大容量 相当于书包放书 相当于其他语言中的数组,可以存储很多数据,很多种数据类型,批量操作
a=10
lst=['hello','world',98]
print(id(lst))
print(type(lst))
print(lst)
# 列表的创建-[]-list()-元素之间使用英文逗号隔开
# 方法一
lst=['hello','world',98]
# 方法二
lst2=list(['hello','world',98])
'''
列表按顺序不变
索引映射唯一一个数据
-7 -6 -5 -4 -3 -2 -1
0 1 2 3 4 5 6
列表可以存储重复数据
任意数据类型混存(包容性好)
根据需要动态分配和回收内存(不用担心不够用)
print(lst[0],lst[-3])'''
列表查询
lst=['hello','world',98,'world']
print(lst.index('world')) # 如果列表中有相同元素,只返回第一个元素的索引
# print(lst.index('python'))
print(lst.index('hello',1,3)) # 指定查找范围-start and stop
print(lst.index('hello',0,5))
正向索引和逆向索引
# 列表有正向索引和逆向索引
lst=['hello','world',98,'hello']
# 获取索引为2的元素
print(lst[3])
# 获取索引为-1的元素
print(lst[-1])
# 获取索引为10的元素
# print(lst[10])
切片
lst=[10,20,30,40,50,60,70,80] # start=0,stop=7,step=1
lst2=lst[1:6:1] # 切面,新的列表对象
print('原列表',id(lst))
print('切片列表',id(lst2)) # id不同,切片出来是一个新的对象
print(lst[1:6])
print(lst[1:6:])
print(lst[1:6:2])
# 省略start,默认从0开始
# 省略step,默认到尾
print('-----------------步长为负数的情况-------------------')
print(lst[::-1]) # [80, 70, 60, 50, 40, 30, 20, 10],相当于逆序输出
print('-----------------start=7,stop默认,步长为-1的情况-------------------')
print(lst[7::-1]) # [80, 70, 60, 50, 40, 30, 20, 10]
print('-----------------start=6,stop=0,步长为-2的情况-------------------')
print(lst[6:0:-2])
print(lst[6:0:2])
判断元素在列表中是否存在
print('p' in 'python')
print('p' not in 'python')
# 判断元素在列表中是否存在
lst=['hello','world',98]
print(10 in lst)
print(10 not in lst)
print('hello' not in lst)
遍历列表
# 遍历列表中的元素
lst=['hello','world',98]
for item in lst:
print(item)
列表元素的添加
# 列表元素的增加
# 向列表末尾增加一个元素append()
lst=[10,20,30]
print('添加元素之前',id(lst))
lst.append(100)
print('添加元素之后',id(lst)) # id没有发生变化,说明是在原来基础上加的,并没有额外形成新的列表
# 向列表末尾至少增加一个元素extend()
lst2=['hello','world']
# lst.extend(lst2) # 将lst2元素补到lst后面
lst.append(lst2)# 区别:将lst2中元素作为一个整体补到lst后面
print(lst)
# 向列表任意位置添加一个元素insert()
lst.insert(1,90)
print(lst)
# 切片 在列表任意位置添加任意个元素
lst3=['True','False','hello']
lst[1::]=lst3 # 把1后面的全都切掉了
print(lst)
列表元素删除
# remove(),一次删除一个,重复只删第一个
lst=[10,20,30,40,50,60,70,80,30]
lst.remove(30)
print(lst)
# lst.remove(100)
# pop(),删除指定索引的元素,没有给索引则删除列表中最后一个
lst.pop(1)
print(lst)
lst.pop()
print(lst) # 不写参数,默认pop最后一个
# 切片 一次至少删除一个元素
print('------------切片-----------')
lst2=lst[1:3]
print('原列表',lst,id(lst))
print('新列表',lst2,id(lst2))
# 不产生新的列表对象,而是删除原有列表中元素
lst[1:3]=[] # 用空元素替代切片元素
print(lst)
# clear()清除列表中所有元素
lst.clear()
print(lst)
# del语句,将列表对象删除,直接把户口都给注销了
del lst
print(lst)
列表元素修改
lst=[10,20,30,40,50]
# 一次修改一个值
lst[2]=100 # 把位置2上的元素换成100
print(lst)
# 切片 赋予新的值
lst[1:3]=[300,400,500]
print(lst)
列表元素的排序操作
# 列表元素的排序操作
lst=[10,30,20,90,40,50]
print('排序前的列表',lst,id(lst))
lst.sort() # 默认为升序
print('排序后的列表',lst,id(lst))
# 是否产生新的列表对象,没有,在原列表上排序
# 通过指定关键字参数,将列表中的元素进行降序排列
lst.sort(reverse=True) # 降序
print(lst)
lst.sort(reverse=False)
print(lst)
print('----------使用内置函数sorted()对列表进行排序,将产生新的列表对象')
# 内置函数可以直接拿来引用
lst=[10,29,13,45,63,24,56]
new_lst=sorted(lst)
print(lst)# 原列表没有发生任何变化
print(new_lst)
# 通过指定关键字参数,将列表中的元素进行降序排列
new_lst1=sorted(lst,reverse=True)
print(lst,id(lst))# 原列表没有发生任何变化
print(new_lst1,id(new_lst1))
列表生成式
# 列表生成式:生成列表的公式
lst=[i*i for i in range(1,10)] # i*i标识列表元素的表达式
print(lst)
lst1=[j for j in range(2,12,2)]
print(lst1)
学习链接:
【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p=57&share_source=copy_web&vd_source=5f93c948050b4284ccf31ae9244fad4c