一、列表的创建
列表有两种创建方法:
-
通过list() 来创建
lis = list() #创建空列表lis(ctrl+鼠标单击list查看Python源码) lis1 = list('str') #创建一个初始化列表,列表元素为's','t','r' lis2 = list([1,2,3]) lis3 = list((1,2,3)) lis4 = list({'name':'haha','age’:18})
说明:
a. list的参数可以是任意可以迭代的数据类型,如字符串、列表、元组、字典
b. 传入字符串其返回结果为[‘s’,‘t’,‘r’],传入列表和元组其返回结果均为[1,2,3],传入字典其返回结果为字典的键[‘name’,‘age’]
c. 列表的元素可以为任意的数据类型,如整型、浮点型、字符串、列表、数组、字典
-
通过[]来创建
lis = [] #创建一个空列表 lis1 = [1,2,4] #初始化列表,列表元素为1,2,4
二、访问列表元素
通过索引来访问列表中的元素,列表元素的索引从0开始,最后一个元素的索引值为len(lis)-1。列表名[索引值]访问列表元素,列表元素不能越界,一旦越界,会抛出异常(IndexError: list index out of range)。
lis = ['a','b','c','d','e','f']
lis[0] #获得列表中的第1个元素‘a’
lis[4] #获得列表中的第5个元素‘e’
lis[6] #列表索引越界抛出异常
三、列表元素的修改
通过对列表元素的重新赋值修改列表元素的值
lis[0] = 'h'
print(lis) #返回['h','b','c','d','e','f']
不能通过lis[6]=‘g’ 来添加新元素,会报错(IndexError: list assignment index out of range)
四、列表元素的删除
-
del 方法
通过del 删除指定的列表元素lis = ['a','b','c','d','e','f'] del lis[3] print (lis) #返回结果['a','b','c','e','f']
-
remove()方法
向remove()传入需要删除的指定元素的值,删除第一次出现的指定列表元素lis = ['a','b','c','d','e','f'] lis. remove('c') #没有返回值 print (lis) #返回结果['a','b','d','e','f']
-
pop()方法
向pop()传入需要删除的指定元素的索引值,弹出指定的列表元素。如果不向pop()传入参数,则默认弹出最后一个列表元素lis = ['a','b','c','d','e','f'] lis. pop() #返回值为需要删除的元素值 print (lis) #返回结果['a','b','c','d','e'] lis.pop(2) print(lis) #返回结果为['a','b','d','e']
五、列表的特殊操作
-
列表的组合
通过“+”来完成列表的组合(拼接),相当于调用列表的__add__()魔术方法lis1 = [1,2,3] lis2 = [4,5,6] lis3 = lis1 + lis2 #相当于lis1.__add__(lis2) print(lis3) #返回结果为[1,2,3,4,5,6]
-
列表的乘法
列表与整数相乘,相当于调用__imul__()魔术方法lis1 = [1,2,3] lis2 = lis1*3 #相当与lis1.__imul__(3) print(lis2) #返回结果为[1,2,3,1,2,3,1,2,3]
不支持列表与列表相乘
3. 判断元素是否在列表中2 in lis1
-
迭代列表中的元素
for i in lis: #i为列表中的每一个元素,lis需要迭代的元素 print(i)
-
六、列表的常用函数
-
len() 获得任意一个列表的长度
lis = [1,2,3,4] print(len(lis)) #列表lis的长度,返回值为4 print(lis.__len__()) #等效于len(lis),列表长度len的魔术方法
-
max() 获得列表元素中的最大值
lis = [1,2,3,4] print(max(lis)) #返回列表lis的最大值4
-
min() 获得列表元素中的最小值
lis = [1,2,3,4] print(min(lis)) #返回列表lis中的最小值1
-
list() 将其他数字类型转换为列表类型
s = "hello" lis = list(s) print(lis) #将字符串s转换为列表类型,返回结果为['h','e','l','l','o']
七、列表的排序和反转
-
列表的反转 reverse() 实现列表的反转
lis = [1,2,3,4] lis.reverse() print(lis) #返回结果为[4,3,2,1]
-
列表的排序 sort()实现列表的排序
lis = [3,2,1,4] lis.sort() #不传参数,默认为升序 print(lis) #返回结果为[1,2,3,4] lis.sort(reverse = True) #传入参数reverse = True,实现列表的降序排序 print(lis) #返回结果为[4,3,2,1]
-
列表的切片
列表的切片是指按照列表顺序截取一部分列表元素
列表切片语法列表名[start:end:step]
start 为所截取的起始列表元素索引,省略则从列表第一个元素开始截取
end 为所截取的最后一个列表元素索引,省略则一直截取到列表结束
step 为列表元素截取的步长,步长可以为负(从右到左开始取值)
注意:
列表的截取区间为左闭右开。lis = ['a','b','c','d','e','f'] #从索引值为1的元素开始截取直到索引值为3-1的列表元素为止,步长为1 print(lis[1:3]) #返回结果为['b','c'] #从索引值为1的元素开始截取直到列表结束,步长为2 print(lis[1::2]) #返回结果为['b','d','f'] #截取列表中的所有元素 print(lis[:]) #返回结果为['a','b','c','d','e','f']
八、列表的内置方法
-
append() 向列表中添加新的元素可以是任意的数字类型(整型、浮点型、字符串、列表、元组、字典)
lis = ['a','b','c'] lis.append('d') #向列表中加入字符串 lis.append(['e','f']) #将列表整体添加到原列表末尾 print(lis) #返回结果为['a','b','c','d',['e','f']]
-
extend() 将一个可迭代数据一次性的添加到原列表,其参数值只能有一个
lis = ['a','b','c'] lis.extend(['e','f']) print(lis) #返回结果为['a','b','c','e','f']
-
count() 返回列表中某个元素出现的次数
lis = ['a','b','c','d','a'] print(count('a')) #返回列表中某个元素出现的次数,结果为2
-
index() 返回列表某个指定元素第一次出现的索引值
lis = ['a','b','c','d','a'] print(lis.index('a')) #返回值为0
-
insert() 在列表中的某个元素之前添加一个对象
lis = ['a','b','c','d'] lis.insert(2,'f') #在c之前插入f(2为插入位置的索引,‘f’为插入对象的值) print(lis) #返回结果为['a','b',‘f’,'c','d']
-
copy() 复制列表,将原列表中的元素复制给新的列表
lis = [1,2,3,4] lis1 = lis.copy() print(lis1) #返回结果为[1,2,3,4]
-
clear() 清空列表
lis = [1,2,3,4] lis.clear() #无返回值 print(lis) #返回结果为[]
快捷键
Ctrl+shift+F10 运行
Ctrl+鼠标单击 打开Python源代码
Ctrl+d 复制当前行
Ctrl+w 选中当前单词(按多次选择多个单词)