写在前面🍎:码字不易,如果对你有帮助的话,给个三连或者关注一下吧🍰,感谢支持!📣
列表和元组
在Python中列表和元组可以用一个变量来表示很多个数据 元组和列表相比, 是非常相似的, 只是列表中放哪些元素可以修改调整, 元组中放的元素是创建元组的时候就设定好的, 不能修改调整
列表
创建列表
创建列表主要有两种方式, [ ] 表示一个空的列表
第一种:直接使用字面值来创建  第二种:使用 list( )来创建 
可以在创建列表的时候,在[ ]中指定列表的初始值 可以直接使用 print 来打印 list 中的元素内容
可以在同一个列表里放不同类型的变量 
访问下标
通过下标访问的方式来获取到列表中的元素 我们把 [ ] 中填写的数字, 称为下标或者索引,[ ]是下标访问操作符 注意: 下标是从 0 开始计数的 
使用下标来修改列表元素 
超出下标有效范围,就会出现异常 
可以使用内建函数len来获取列表的长度(元素个数),和字符串相似,因为下标是从 0 开始的, 因此下标的有效范围是 [0, 列表长度 - 1],使用 len 函数可以获取到列表的元素个数,len可以传字符串,列表,元组,字典,自定义的类 
python中的下标还可以写成负数,下标可以取负数,表示 “倒数第几个元素” 
切片操作
通过下标操作是一次取出里面第一个元素 通过切片, 则是一次取出一组连续的元素, 相当于得到一个子列表
使用 [ : ] 的方式进行切片操作 注意:这里只打印4,5是因为前闭后开,[1:3]相当于区间[1,3),这里[ ]中的数字指的是下标
使用切片的时候,可以省略前后边界 
切片操作还可以指定 “步长” , 也就是 “每访问一个元素后, 下标自增几步” 
切片操作指定的步长还可以是负数, 此时是从后往前进行取元素. 表示 “每访问一个元素之后, 下标自减几步”  从以上的例子可以看出,当切片中的范围超出有效下标后,不会出现异常,而是尽可能的把符合要求的元素给获取到
切片操作是一个比较高效的操作,进行切片的时候,只是取出了原有列表中的一部分,并不涉及到"数据的拷贝"
遍历列表元素
遍历就是把一个列表(可替换成元组,字典等等)里面的每个元素,都依次的取出来,再分别进行处理 遍历搭配循环使用
1.使用 for 循环来遍历 
2.使用 for 循环遍历,通过下标的方式 
使用 while 循环. 手动控制下标的变化 
新增元素
使用 append 方法, 向列表末尾插入一个元素(尾插)  注意: 此处的append 是搭配该列表对象a来一起使用的,而不是作为一个独立的函数,要搭配对象来使用的函数也叫做"方法"
使用 insert 方法, 向任意位置插入一个元素 insert 第一个参数表示要插入元素的下标
查找元素
使用 in 操作符, 判定元素是否在列表中存在. 返回值是布尔类型 
使用 index 方法, 查找元素在列表中的下标. 返回值是一个整数. 如果元素不存在, 则会抛出异常 
删除元素
使用 pop 方法删除最末尾元素 
使用pop还能删除任意位置的元素,pop的参数可以传一个下标过去 
使用 remove 方法, 按照值删除元素 
连接列表
使用 + 能够把两个列表拼接在一起 注:此处的 + 结果会生成一个新的列表. 而不会影响到旧列表的内容
使用 extend 方法, 相当于把一个列表拼接到另一个列表的后面 注:a.extend(b) , 是把 b 中的内容拼接到 a 的末尾. 不会修改 b, 但是会修改 a  None:这是一个特殊的变量的值,表示什么都没有 因为extend方法其实是没有返回值的,拿一个变量来接收返回值的方法,返回的就是None
使用+=来进行拼接 
a+=b多了三步操作: 1.多创造了一个新的列表的操作 2.多了把大的列表的值赋值给a 3.多了把a的旧值释放的操作
+=和extend拼接的区别: a+=b等价于a = a+b,产生了一个新的列表a a.extend(b)则是直接把b的内容拼接到a的后面
元组
元组的功能和列表相比, 基本是一致的 元组不能修改里面的元素, 列表则可以修改里面的元素 因此, 像读操作,比如访问下标, 切片, 遍历, in, index, + 等, 元组也是一样支持的 但是, 像写操作, 比如修改元素, 新增元素, 删除元素, extend 等, 元组则不能支持
元组使用 ( ) 来表示 
创建元组的时候,指定初始值 
元组中的元素也可以是任意类型的 
通过下标来访问元组中的元素,下标也是从0开始到len减1结束 
通过切片来获取元组中的一部分 
与列表一样,同样可以使用for循环等来进行遍历元素,可以使用in来判定元素是否存在,使用index查找元素的下标,使用+来拼接两个元组
元组只是支持"读"操作,不支持"修改"类的操作  
元组在 Python 中很多时候是默认的集合类型. 例如, 当一个函数返回多个值的时候
|