前言:本文简单的总结了一下列表(list)和元组(tuple)的用法
目录
列表——定义
列表——存储相同类型的数据
举个例子——存放相同类型数据
列表中——存储不同类型的数据
举个例子——存放不同类型数据
列表——元素的访问
列表——索引 index
想要单独获取列表的某个元素时,可以使用下标索引
列表不仅可以正着访问还可以倒着访问
列表——切片
切片——普通访问 list [a:b]
切片——跨步长访问 list [a:b:c]
切片——倒切 list[-a:-b:-c]
切片——超范围切
列表——常用函数
列表——添加元素
添加元素——末尾添加 append( element)
添加元素——指定位置添加 insert(index,element)
添加元素——批量添加数据 extend([element1,element2...])
列表——删除元素
删除元素——默认删除最后一个 pop()
删除元素——删除指定位置元素 pop(index)
删除元素——删除指定元素 remove(element)
删除元素——删除范围内元素 del list[a:b]
删除元素——一次清空clear()
列表——其他函数
其他函数——统计元素个数 list.count(element)
其他函数——反转列表 list.reverse()
其他函数——列表排序
列表排序——持久排序 list.sort()
列表排序——临时排序 list2=sorted(list)
列表排序——反向排序 sorted(list,reverse=True)
其他函数——列表复制 list2=list.copy()
元组
元组——定义
元组——索引
元组——强行修改
元组——拆包
拆包——变量数和元组内元素数相同
拆包——变量数和元组内元素数不同
列表如同一个菜篮子,可以放菜,可以放钱,即列表里面可以放字符串,也可以放数值类型数据,除此之外,列表里面可以几乎放python的任何对象
li=[ ]
列表里既可以存放相同类型的数据,也可以存放不同的数据,常用来打包数据
定义一个name列表,里面存储了几个人的名字
定义一个人,他有姓名、年龄、性别、身高等属性
列表中每个元素在列表中的位置称为索引(index),可以通过索引值来取对应位置上的值
举个例子——定义一个篮子,输出西瓜、白菜、南瓜在该列表里的下标
举个例子——定义一个篮子,并输出下标为0 2 3的元素
在这里为了直观的看到结果,我在水果名的后面加上了它的下标
举个例子——定义一个篮子,并输出下标为-1 -2 -3的元素
观察发现:-1访问的是倒数第一个元素,-2访问的是倒数第二个元素,-3访问的是倒数第三个元素
注意:访问列表时,无论是正着访问,还是倒着访问都不可以越界
举个例子-访问之正越界
举个例子-访问之负越界
列表还可以根据一个范围来取值,这称为切片
切片访问,左闭右开,访问左边的元素不访问右边的元素。
如上图所示,访问list_basket [0:2],访问的是下标为0 和1 的元素
切片访问,左闭右开,带有步长就是,每隔c个访问一次,也就是下标依次增加c
如上图所示,访问list_basket [0:5:2],访问过程:从0到5,每隔2访问一次,访问的是0 2 4位置的元素
切片可以从后往前切 正常的步长是往右的,倒着切的话要把步长改成负的(向左的)
切片可以超范围,超过边界之后,就访问到了列表的尽头,不报错
如图所示,访问切list_basket 下标从0到100的元素,100大于list_basket的最大下标5,这里就当取到了5,也就是切片的右端b=min(b,list.length)(切片的右端点,等于切片右端点和列表最大下标的最小值)。
延伸——正无穷、负无穷访问
list[0: ]:从0开始,访问到正无穷
list[ :3]:从负无穷开始,访问到2
list[ : ]:从负无穷开始,访问到正无穷
如图删除list_basket[0:3],左闭右开,删除的是0 1 2位置的元素
临时排序的排序结果需要其他变量来接收
元组:类似列表,也可以索引取值,但是元素不能更改,一旦确定就无法改变
一句话就是:元组是不能修改的列表
元组定义: tu=()
元组索引:依靠下标,tuple[index]
如果想要强行修改元组的话,可以把元组转换成列表,修改完之后再转换成元组
可以用变量来拆包元组
当变量数和元组内元素数不同时直接拆包会出错
修改后——在一个变量名前加 “*” 表示要接收多余的元素
分配原则:a,c对应一个,剩下的留给b
理解:加*号以后的变量从后往前拆分元组内的元素,如上图c对应倒数第一个元素"f",
b对应倒数第二个元素"e",其余的拆分给a
自我总结
列表相当于一个存储数据的集合,可以索引值,可以增删查改。
列表访问时可以使用切片。
1.切片是两个范围之间取值,且后面的数取不到
2.切片时范围超过也没有关系
3.切片时还可以指定步长
元组是不能修改的列表,支持初始化和访问,不支持修改。
做好现在该做的,剩下的事给好运一些时间。