一、列表
1、什么是列表:
列表是一个有序的、可以修改的、元素以逗号分割、以中括号包围的序列
2、列表操作
列表的索引和字符串的索引类似,但不完全相同,因为列表可以修改,所以我们可以通过列表的索引来修改列表。
3、创建一个空列表
name=[]
此时name就是一个空的列表,使用type()方法查看name的类型就会是list
print(type(name))
执行上面的代码在控制台就会看到
注意:列表中的数据类型是可变的,甚至可以嵌套一个列表或字符串
4、列表操作常用的方法
![af6427535e3bbfb896743d0ad051916a.png](https://i-blog.csdnimg.cn/blog_migrate/c13e03e49e6a3f740e230ee2c85a9799.jpeg)
![8923e01fe1a6015b0b2e03d566f80136.png](https://i-blog.csdnimg.cn/blog_migrate/6a97bc67f6ac25cc0e1e5c33c3a81769.jpeg)
5、演示 列表的添加 常用操作方法
示例1: append()
使用方法:append()是在列表的末尾添加指定的元素
name=['张飞','蔡文姬','李白','韩信']name.append('铠')# 使用append()方法添加 铠print(name)控制台输出结果为['张飞', '蔡文姬', '李白', '韩信', '铠']
示例2: insert()
注意:在索引操作时,一定要明白计算机的索引计数是从0开始的
使用方法:在指定索引位置添加元素
name=['张飞','蔡文姬','李白','韩信']name.insert(2,'铠') # 在索引为2的位置添加了 铠print(name)print(name)在控制台输出结果为['张飞', '蔡文姬', '铠', '李白', '韩信']
使用方法:当索引数为复数时,此时需要注意索引计数是从后向前的,也就是从右向左计数
name=['张飞','蔡文姬','李白','韩信']name.insert(-1,'铠') # 在索引为-1的位置(也就是从右向左)添加了 铠print(name)print(name)在控制台输出结果为['张飞', '蔡文姬', '李白', '铠', '韩信']
示例3: extend()
使用方法:将指定序列,一次添加在指定序列的尾部
list_1=['张飞','蔡文姬','李白','韩信']list_2=[1,2,3,4,5]list_1.extend(list_2) #注意添加关系,把list_2的元素依次添加在list_1的尾部print(list_1)在控制台输出的结果为['张飞', '蔡文姬', '李白', '韩信', 1, 2, 3, 4, 5]
6、演示 列表的删除 常用操作方法
示例1: pop()
使用方法:当不指定删除的索引位置时,默认的从列表的末尾删除元素
list_1=['张飞','蔡文姬','李白','韩信']print(list_1.pop()) # 注意:每删除一次,列表都会更新,且下次删除是在新列表的末尾操作print(list_1.pop()) # 注意:每删除一次,列表都会更新,且下次删除是在新列表的末尾操作print(list_1)在控制台输出结果为韩信李白['张飞', '蔡文姬']
使用方法:当指定删除的索引位置时,就从列表的指定索引位置删除元素
list_1=['张飞','蔡文姬','李白','韩信']print(list_1.pop(1))print(list_1)在控制台输出结果为蔡文姬['张飞', '李白', '韩信']
示例2: remove()
使用方法:从左向右删除指定元素
list_1=['张飞','蔡文姬','uzi','李白','韩信']list_1.remove('uzi')print(list_1)在控制台输出结果为['张飞', '蔡文姬', '李白', '韩信']
示例3: del()
使用方法:删除整个列表
注意:del()是python内置的方法,并不是列表操作独有的方法
list_1=['张飞','蔡文姬','uzi','李白','韩信']del(list_1)print(list_1) 在控制输出结果为NameError: name 'list_1' is not defined为什么会出现报错呢?是因为列表数据被删除之后,python的垃圾回收机制会导致list_1的变量名也被删除
6、演示 列表的查找 常用操作方法
示例1: []
使用方法:根据给定索引查找元素
list_1=['张飞','蔡文姬','uzi','李白','韩信']print(list_1[2])在控制台输出结果为uzi
示例2: count()
使用方法:查找列表中的指定元素
list_1=['张飞','李白','蔡文姬','uzi','李白','韩信','李白']print(list_1.count('李白'))在控制台输出结果为3
示例3: index()
使用方法:从左到左查找指定元素,并且返回第一个元素出现的索引
list_1=['张飞','李白','蔡文姬','uzi','李白','韩信','李白']print(list_1.index('李白'))在控制台输出结果为1
使用方法:在没有找到指定元素的时候会报错
list_1=['张飞','李白','蔡文姬','uzi','李白','韩信','李白']print(list_1.index('铠'))在控制台输出的结果为ValueError: '铠' is not in list
示例4: in
使用方法:从左到右判断指定元素是否在列表中,如果元素在列表中返回true,如股票元素不在列表中返回false
list_1=['张飞','李白','蔡文姬','uzi','李白','韩信','李白']print('李白' in list_1)在控制台输出的结果为Truelist_1=['张飞','李白','蔡文姬','uzi','李白','韩信','李白']print('露娜' in list_1)在控制台输出的结果为False
6、演示 列表的排序 常用操作方法
示例1: reverse()
使用方法:将列表翻转
list_1=[1,2,3,4,5,6,7,8,9]list_2=reversed(list_1)print(list(list_2)) # 在输出时不指定输出类型会输出
示例2: sort()
使用方法:依照Ascii码表顺序进行排序
list_1=[4,1,6,3,9,6]list_1.sort()print(list_1)在控制台输出的结果为[1, 3, 4, 6, 6, 9]list_1=['张飞','李白','蔡文姬','uzi','韩信']list_1.sort()print(list_1)在控制台输出结果为['uzi', '张飞', '李白', '蔡文姬', '韩信']
注意:列表内不同数据类型之间,不能相互比较,否则会出错。
list_1=['张飞','李白','蔡文姬',3,'uzi','韩信']list_1.sort()print(list_1)在控制台输出结果为TypeError: '
二、list() 函数
示例1: 以一个序列作为参数并把它转换为列表,如果参数类型是list,那么该参数就会被原样返回。
list_1=['张飞','李白','蔡文姬',3,'uzi','韩信']print(list(list_1))在控制台输出结果为['张飞', '李白', '蔡文姬', 3, 'uzi', '韩信']
示例2: 以一个序列作为参数并把它转换为列表,如果参数类型不是list,那么该参数就会被转换为list类型并返回
str_1='abcdef'# 参数类型为字符串strprint(list(str_1))在控制台的输出结果为['a', 'b', 'c', 'd', 'e', 'f']
示例3: 把列表内容转换为字符串
list_1=['a', 'b', 'c', 'd', 'e', 'f']print(''.join(list_1))在控制台输出结果为abcdef
示例4: 列表的从左向右切片操作
注意:索引是一个左闭右开的区间,也就是包含左侧不包含右侧
lsit1 = [1,2,3,4,5,6,7,8]print(lsit1[1]) # 从左到右获取索引为1的数在控制台输出的结果为2print(lsit1[-1]) # 从右到左获取第一个元素在控制台输出的结果为8print(lsit1[1:4]) # 从左到右获取索引1到4的元素(注意索引是一个左闭右开的区间,也就是包含左侧不包含右侧)在控制台输出的结果为[2, 3, 4]print(lsit1[1:6:2]) # 从左到右获取索引1到6的元素,且步长2,也就是隔一个元素取一个在控制台输出的结果为[2, 4, 6]
示例5: 列表的从右向左切片操作
lsit1 = [1,2,3,4,5,6,7,8]print(lsit1[1:6:-1]) # 从左到右获取索引1到6的元素,且步长-1,没有元素控制台输出的结果为[]print(lsit1[6:1:-1]) # 从右到左获取索引6到1的元素,且步长为-1控制台输出的结果为[7, 6, 5, 4, 3]print(lsit1[6:-1:-1]) # 从右到左获取索引6到-1的元素,且步长为-1,没有元素控制台输出的结果为[]print(lsit1[6:1:-2]) # # 从右到左获取索引6到1的元素,且步长为-2控制台输出的结果为[7, 5, 3]