✅作者简介:大家好我是Xlong,一枚正在学习COMSOL、Python的工科研究僧
📃个人主页: Xlong的个人博客主页
🔥系列专栏:Python学习
💖如果觉得博主的文章还不错的话,请👍支持一下博主哦🤞
本篇简介
在上一章《python基础(5):循环结构》中简单介绍了组织结构中的循环结构。这一篇文章我们主要来学习列表的相关知识。
目录
一、列表的创建与删除
1.1 为什么需要列表?
(1)变量可以存储一个元素,而列表是一个“大容器”可以存储N多个元素,程序可以方便地对这些数据进行整体操作
(2)列表相当于其他语言中的数据
lst = ['hello','world',98]
print(id(lst))
print(type(lst))
print(lst)
1.2 列表的创建方式
(1)使用中括号
(2)调用内置函数list()
列表需要使用中括号[],元素之间使用英文的逗号进行分隔 !
'''第一种方式,使用[]'''
lst = ['hello','world',88]
'''第二种方式,使用内置函数list()'''
lst2(['hello','world',98])
1.3 列表的特点
(1)列表元素按顺序有序排列
(2)索引映射唯一一个数据
(3)列表可以存储重复数据
(4)任意数据类型混存
(5)根据需要动态分配和回收内存
二、列表的查询操作
2.1 获取列表中指定元素的索引
lst = ['hello','world',98,'hello']
print(lst.index('hello')) #如果列表中有相同元素,只返回列表中相同元素的第一个元素的索引
#print(lst.index('Pyhton')) #'Pyhton' is not in list
#print(lst.index('hello',1,3)) #'hello' is not in list
print(lst.index('hello',1,4))
2.2 获取列表中的单个元素
lst = ['hello','world',98,'hello','world',234]
#获取索引为2的元素
print(lst[2])
#获取索引为-3的元素
print(lst[-3])
#获取索引为10的元素
print(lst[-10])#IndexError: list index out of range
2.3 获取列表中的多个元素(切片操作)
lst = [10,20,30,40,50,60,70,80]
#start = 1,stop = 6,step = 1
# print(lst[1:6:1])
print('原列表',id(lst))
lst2 = lst[1:6:1]
print('切的片段:',id(lst2))
print(lst[1:6]) #默认步长为1
print(lst[1:6:1])
#start = 1,stop = 6,step = 2
print(lst[1:6:2])
#stop = 6,step = 2,start采用默认
print(lst[:6:2])
#start = 1,step = 2,stop采用默认
print(lst[1::2])
print('------step步长为负数的情况--------')
print('原列表:',lst)
print(lst[::-1])
#start = 7 stop省略 ,step=-1
print(lst[7::-1])
#start = 6,stop = 0,step = -2
print(lst[6:0:-2])
2.4 列表元素的查询操作
(1)判断指定元素在列表中是否存在
print('p' in 'python')
print('k' not in 'python')
lst = [10,20,'python','hello']
print(10 in lst) #True
print(100 in lst) #False
print(100 not in lst) #True
(2)列表元素的遍历
lst = [10,20,'python','hello']
for item in lst:
print(item)
三、列表元素的增、删、改操作
3.1 列表元素的增加操作
(1)append() :在列表末尾添加一个元素
#向列表的末尾添加一个元素
lst = [10,20,30]
print('添加元素之前',lst,id(lst))
lst.append(100)
print('添加元素之后',lst,id(lst))
(2)extend():在列表末尾至少添加一个元素
lst = [10,20,30]
lst2 = ['hello','world']
#向列表的末尾一次性添加多个元素
lst.extend(lst2)
print(lst) 运行结果:[10, 20, 30, 'hello', 'world']
(3)insert():在列表任意位置添加一个元素
lst = [10,20,30]
lst2 = ['hello','world']
#在任意位置上添加一个元素
lst.insert(1,90)
print(lst) 运行结果:[10, 90, 20, 30]
(4)切片:在列表任意位置添加至少一个元素
lst = [10,20,30]
lst3 = ['True','False','hello']
lst[1:] = lst3
print(lst)
3.2 列表元素的删除操作
(1)remove():
-
一次删除一个元素
-
重复元素只删除第一个
-
元素不存在抛出ValueError
lst = [10,20,30,40,50,60,70]
lst.remove(30) #从列表中移除一个元素,如果有重复元素只移第一个元素
print(lst)
# lst.remove(100)#ValueError: list.remove(x): x not in list
print(lst)
(2)pop():
-
删除一个指定索引位置上的元素
-
指定索引不存在抛出IndexError
-
不指定索引,删除列表中最后一个元素
lst = [10,20,30,40,50,60,70]
#pop()根据索引去移除元素
lst.pop(1)
print(lst)
# lst.pop(6) #IndexError: pop index out of range
lst.pop() #如果不指定参数(索引),将删除列表中的最后一个元素
print(lst)
(3)切片:
-
一次至少删除一个元素
lst = [10,20,30,40,50,60]
print('-----删除至少一个元素,将产生一个新的列表对象-----')
new_list=lst[1:3]
print('原列表',lst)
print('切片后的列表',new_list)
print('-----不产生新的列表对象,而是删除原列表中的内容-----')
lst[1:3] = []
print(lst)
(4)clear():
-
清空列表
'''清除列表中的所有元素'''
lst = [10,20,30,40,50,60]
lst.clear()
print(lst)
(5)del:
-
删除列表
'''del语句将列表对象删除'''
lst = [10,20,30,40,50,60]
del lst
print(lst) 运行结果:NameError: name 'lst' is not defined
3.3 列表元素的修改操作
(1)为指定索引的元素赋予一个新值
lst = [10,20,30,40]
#一次修改一个值
lst[2] = 100
print(lst)
(2)为指定的切片赋予一个新值
lst = [10,20,30,40]
lst[1:3] = [200,300,400]
print(lst)
四、列表元素的排序
4.1 调用sort(方法)
列表中所有元素默认按照从小到大的顺序进行排序,可以指定reverse = True,进行排序降序
lst = [20,40,10,98,54]
print('排序前的列表',lst)
#开始排序,调用列表对象的sort方法,默认升序排序
lst.sort()
print('排序后的列表',lst,id(lst))
#通过指定关键字参数,将列表中的元素进行降序排序
lst.sort(reverse=True) #reverse=True,表示降序排序,reverse=False就是升序排序
print(lst)
lst.sort(reverse=False)
print(lst)
4.2 调用内置函数sorted()
可以指定reverse = True,进行降序排序,原列表不发生改变
lst = [20,40,10,98,54]
print('原列表',lst)
#开始排序
new_list = sorted(lst)
print(lst)
print(new_list)
#使用关键字参数,实现列表元素的降序排序
desc_list = sorted(lst,reverse=True)
print(desc_list)
五、列表生成式
列表生成式:简称“生成列表的公式”,语法格式为:
[i*i for i in range(1,10)]
#i*i是表示列表元素的表达式,其中通常包含自定义变量
#i是自定义变量
#range(1,10)是可迭代对象
lst = [i*i for i in range(1,10)] #i*i是表示列表元素的表达式,其中通常包含自定义变量
print(lst) 运行结果为:[1, 4, 9, 16, 25, 36, 49, 64, 81]
'''列表中元素的值为2,4,6,8,10'''
lst2 = [i*2 for i in range(1,6)]
print(lst2)
未完待续.................................................................
原创不易,各位看官请随手点下Follow和Star,感谢!!!