06-python列表的使用方法
1. 序列
•基本概念:是Python中最基本的一种数据结构。序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引,index)并且序列中的数据会按照添加的顺序来分配索引
•数据结构:数据结构是计算机存储、组织数据的方式。
序列的分类
•可变序列(序列中的元素可以改变):例如 列表(list),字典(dict)…
•不可变序列(序列中的元素不能改变):例如 字符串(str),元组(tuple)…
2. 列表
•基本概念:是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合,在这种数据结构上进行的基本操作包括对元素的的查找,插入,和删除
•作用:
•列表是python语言中的一个对象
•列表可以保存多个有序数据
•列表是用来存储对象的对象
2.1列表的使用
列表的创建:
student=[]#创建一个新列表,表名为student
•列表可以保存任意对象
list = [1 , 'python',None,True,max(1,2,3)]#可以保存整型变量,字符串,空值,布尔值,函数...
•列表的索引(index):
•通过索引(index)来获取列表中元素
•索引就是元素在列表中的位置 ,每一个元素都有自己的索引,索引是从0开始,列表的第一个位置就是0,第二个位置是1, 以此类推。
name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊']
print(name[0])#输出结果:喜羊羊
print(name[2])#输出结果:沸羊羊
print(name[4])#输出结果:懒羊羊
•索引也可以是负数,如果索引为负是从后往前获取元素, -1表示最后一个元素 ,-2表示倒数第二个元素, 以此类推。
name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊']
print(name[-1])#输出结果:懒羊羊
print(name[-3])#输出结果:沸羊羊
print(name[-5])#输出结果:喜羊羊
•列表的切片
•切片 是指从现有列表中,获取一个子列表。
•通过切片可获取指定的元素。
•语法表现: 列表[ 起始索引 : 结束索引 : 步长 ]
•通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素 左闭右开
•通过切片只会获取一个新的列表,不会影响原来的列表
name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
print(name[0:3])#输出结果:['喜羊羊', '美羊羊', '沸羊羊']
print(name[2:4])#输出结果:['沸羊羊', '慢羊羊']
print(name)#输出结果:['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
•如果省略结束位置的索引,则从当前的位置会一直截取到最后
•如果省略开始位置 则会从第一个元素截取到结束位置,但是不包括结束位置的元素
•如果开始位置和结束位置都省略,则会从第一个位置截取到最后一个位置上面的元素 ,即获取全部元素
name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
print(name[1:])#输出结果:['美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
print(name[:4])#输出结果:['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊']
print(name[:])#输出结果:['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
•步长可以省略,默认值为1
•步长可以为负数,但是不能为0
name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
print(name[0:5])#输出结果:['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊']
print(name[0:5:1])#输出结果:['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊']
print(name[0:5:3])#输出结果:['喜羊羊', '慢羊羊']
print(name[::2])#输出结果:['喜羊羊', '沸羊羊', '懒羊羊']
print(name[::-1])#输出结果:['暖羊羊', '懒羊羊', '慢羊羊', '沸羊羊', '美羊羊', '喜羊羊'] 反转序列
print(name[4:1:-1])#输出结果:['懒羊羊', '慢羊羊', '沸羊羊']
•列表的修改
•通过del关键字来删除元素
name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
del name[3]#删除索引为3的元素
print(name)#输出结果为:['喜羊羊', '美羊羊', '沸羊羊', '懒羊羊', '暖羊羊']
•通过切片来修改(就是给切片的内容重新赋值,但是赋值的内容必须是一个序列)
name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
name[0:3]=['红太狼','灰太狼','蕉太狼',]#在索引为0,1,2的位置依次添加列表中的新元素
print(name)#输出结果:['红太狼', '灰太狼', '蕉太狼', '慢羊羊', '懒羊羊', '暖羊羊']
•通过切片来删除元素
name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
name[1:3]=[]#删除索引为1,2的元素(本质是将其赋值为空列表)
print(name)#输出结果:['喜羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
•当设置了步长的时候,序列中元素的个数必须和切片中元素的个数保持一致
name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
name[::2]=['红太狼','灰太狼','蕉太狼',]#从索引为0开始,步长为1,依次替换其中的元素
print(name)#输出结果:['红太狼', '美羊羊', '灰太狼', '慢羊羊', '蕉太狼', '暖羊羊']
3. 可变序列的通用操作
•+和*(拼接和重复)
•+ 可以将两个列表拼接成一个列表
•* 可以将列表重复指定的次数 (注意:2个列表不能够做乘法,只能和整数做乘法运算)
name1 = ['喜羊羊', '美羊羊', '沸羊羊']
name2 = ['慢羊羊', '懒羊羊', '暖羊羊']#将两个列表拼接在一起
print(name1+name2)#输出结果:['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
name = ['喜羊羊', '美羊羊', '沸羊羊']#将列表内容重复三次
print(3*name)#输出结果:['喜羊羊', '美羊羊', '沸羊羊', '喜羊羊', '美羊羊', '沸羊羊', '喜羊羊', '美羊羊', '沸羊羊']
•in和not in
•in用来检测指定元素是否在列表中,返回的是布尔值
•not in 用来检测指定元素是否不在列表中,返回的是布尔值
name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']#判断喜羊羊是否在列表中
print('喜羊羊' in name)#在,输出结果:True
name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']#判断慢羊羊是否不在在列表中
print('慢羊羊' not in name)#在,输出结果:False
•max() 获取列表中最大值
•min() 获取列表中最小值
number = [1, 2, 3, 4, 5, 6, 7, 8]
print(max(number))#输出结果:8
print(min(number))#输出结果:1
•len() 获取列表中元素的个数
name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
print(len(name))#输出结果:6
•方法:list.index(x,起始索引,结束索引)
•第一个参数是获取指定元素在列表中的位置
•第二个参数表示查找的起始位置索引
•第三个参数表示查找的结束位置索引
name = ['喜羊羊', '美羊羊', '懒羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']#在列表的全部元素中查找则返回第一结果的索引值
print(name.index('懒羊羊'))#输出结果:2
name = ['喜羊羊', '美羊羊', '懒羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']#在指定区间查找返回结果的索引值
print(name.index('懒羊羊', 3, 6))#输出结果:5
•list.count(元素名) 统计指定元素在列表中出现的个数
name = ['喜羊羊', '美羊羊', '懒羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
print(name.count('懒羊羊'))#输出结果:2
4. 列表的方法
•list.append() 向列表的最后添加一个元素
name = ['喜羊羊', '美羊羊', '沸羊羊']
name.append('灰太狼')#向列表最后添加'灰太狼'这个元素
print(name)#输出结果:['喜羊羊', '美羊羊', '沸羊羊', '灰太狼']
•list.insert(arg1,arg2) 向列表指定位置插入一个元素 参数1:要插入的位置 参数2:要插入的元素
name = ['喜羊羊', '美羊羊', '沸羊羊']
name.insert(1, '灰太狼')
print(name)输出结果:['喜羊羊', '灰太狼', '美羊羊', '沸羊羊']
•list.extend(iterable) 使用一个新的列表来扩展当前列表(它会将该列表的中元素添加到原列表中) 参数为一个列表
name1 = ['喜羊羊', '美羊羊', '沸羊羊']
name2 = ['红太狼', '灰太狼', '蕉太狼']
name1.extend(name2)#向name1列表最后添加neme2列表
print(name1)#输出结果:['喜羊羊', '美羊羊', '沸羊羊', '红太狼', '灰太狼', '蕉太狼']
•list.pop() 根据索引删除元素并会返回删除的指定元素
name = ['喜羊羊', '美羊羊', '懒羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
a = name.pop(2)#删除索引为2的元素,并返回赋值给a
print(name)#输出结果:['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
print(a)#输出结果:懒羊羊
•list.remove() 删除指定元素 (如果相同值的元素有多个,只会删除第一个)
name = ['喜羊羊', '美羊羊', '懒羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
name.remove('懒羊羊')#相同值只会删除第一个
print(name)#输出结果:name = ['喜羊羊', '美羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
name.remove('懒羊羊')
print(name)
•list.reverse() 翻转列表
name = ['喜羊羊', '美羊羊', '懒羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
name.reverse()#翻转列表
print(name)#输出结果:['暖羊羊', '懒羊羊', '慢羊羊', '沸羊羊', '懒羊羊', '美羊羊', '喜羊羊']
•list.sort(key=None,reverse=False) 用来对列表中的元素进行排序 reverse:True反序;False 正序
name = ['喜羊羊', '美羊羊', '懒羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
name.sort(reverse=True)
print(name)#输出结果:['美羊羊', '沸羊羊', '暖羊羊', '懒羊羊', '懒羊羊', '慢羊羊', '喜羊羊']
name = ['喜羊羊', '美羊羊', '懒羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
name.sort(reverse=False)
print(name)#输出结果:['喜羊羊', '慢羊羊', '懒羊羊', '懒羊羊', '暖羊羊', '沸羊羊', '美羊羊']
5. 遍历列表
5.1 for循环遍历列表
•语法表现
•for 变量 in 序列(遍历的规则):
代码块
•注意: for循环的代码块会执行多次,序列中有几个元素就会执行几次。每执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的各个元素
name = ['喜羊羊', '美羊羊', '懒羊羊', '沸羊羊', '慢羊羊', '懒羊羊', '暖羊羊']
for i in name:
print(i)
#输出结果:
#喜羊羊
#美羊羊
#懒羊羊
#沸羊羊
#慢羊羊
#懒羊羊
#暖羊羊
5.2 range(start, stop, step)
•参数说明
•start: 计数从 start 开始。默认是从0开始。例如range(5)等价于range(0, 5);
•==stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 ==
•step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
for i in range(0,5):
print(i)
#输出结果一样:0 1 2 3 4
for i in range(5):
print(i)
for i in range(0,5):
print(i)
#输出结果一样:0 1 2 3 4
for i in range(0,5,1):
print(i)
本文地址:https://blog.csdn.net/qq_45261963/article/details/107329911