列表元组
列表元组的操作符
len在列表元组中的使用
- len函数可以计算除数字类型之外,其他所有数据类型的长度
列表(元组)之间的累加与乘法
- 两个列表相加可以使用
+
- 同一个列表多次累加可以使用
*
in和not in在列表(元组)中的用法
- in用于判断某个成员(元素)是否在该数据结构中
- not in用于判断某个成员(元素)是否不在该数据结构中
append()函数(将一个元素添加到当前列表中)
- 用法:
list.append(new_item)
- 参数
new_item:需要添加到列表中的元素
- 注意:
- 不会新生成一个列表,是在原有的列表中添加
- 被添加的元素只会被添加到末尾
insert()函数(讲一个元素添加到当前列表的指定位置)
- 用法:
list.insert(index,new_item)
- 参数
index:新元素的位置
new_item:需要添加到列表中的元素
- 注意:
- append只能添加到列表的末尾,insert可以选择任意一个位置
- insert传入的index不存在,则将新元素添加到列表结尾
- 字符串,元组,列表 元素的位置是从0开始计算的
count()函数(返回当前列表中某个成员的个数)(元组可用)
- 用法:
inttype = list.count(item)
- 参数
item:需要查询个数的元素
- 注意:
- 如果查询的成员(元素)不存在,则返回0
- 使用该函数,只会检查列表或元组中完整元素是否存在需要计算的内容:
- 如list中存在"西瓜"
- 如果coun(“西”)
- 则返回0
remove()函数(删除列表中的某个元素)
- 用法:
list.remove(item)
- 参数
item:准备删除的列表元素
- 注意:
- 如果指定删除的成员在列表中不存在,会直接报错
- 如果指定删除的元素有多个,则会删除从左到右的第一个元素
- remove函数不会新建一个列表,而是在原有的列表中进行删除
python的内置函数del(完全删除)
- del可以把变量完全删除
- 用法:
del 变量名
- 参数
变量名:准备删变量
- 注意:
- 如果重新应用被删除的变量,会报错(变量未定义)
reverse()函数(将当前列表顺序进行反转)
- 用法:
list.reverse()
- 参数
无参数
- 注意:
- 对当前列表进行修改
sort()函数(对当前列表按照一定规律进行排序)
- 用法:
list.sort(cmp=NONE,key=NONE,reverse=False)
- 参数
cmp --- 可选参数,指定排序方案
key --- 参数比较
reverse --- 排序规则,reverse= True 降序,reverse = False 升序(默认)
- 注意:
- 默认按照字符串首字母的顺序及数字的大小进行排序
- 必须要保证列表中的元素类型相同,否则无法排序,会报错
- 如果当前列表的顺序符合要求,则不会再进行排序了
clear()函数(清空当前列表中的所有数据)
- 用法:
list.clear()
- 参数
无需传参
- 注意:
- 没有返回值,是对已有的列表进行修改
copy()函数(将当前列表复制一份相同的列表)
- 用法:
list.copy()
- 参数
无需传参
- 注意:
-
新列表与旧列表的内容相同,但是指向的内存地址不同,本质上不是同一个列表
-
二次赋值的变量与原始变量相同,指向的内存地址也相同,本质上是同一个列表
-
copy属于浅拷贝(列表中的某个数据发生了变化后,相互之间会受到影响)
# coding:utf-8 a = [[1,2,3],[4,5,6]] b = a.copy() print(b) b[0].append(4) print(a) print(b)
-
可以使用copy.deepcopy(X)进行深拷贝(深拷贝对深层数据也进行了copy,原始数据和新变量完全不共享数据)
# coding:utf-8 import copy a = [[1,2,3],[4,5,6]] b = copy.deepcopy(a) print(b) b[0].append(4) print(a) print(b)
-
extend()函数(将其他列表或者元组中的元素一次性导入当前列表)
- 用法:
list.extend(iterable)
- 参数
iterable 代表列表或者元组,该函数无返回值
- 注意:
- 传入的参数需要是一个可迭代的元素
- 可迭代的元素中会被导入到列表中
列表的索引与切片
索引
- 字符串,列表和元组
- 从最左边记录的位置就是索引
- 索引用数字表示,从左往右从0开始
- 字符串,列表(元组)的最大索引是他们的长度-1
切片
- 索引是对单个元素进行访问,切片则是对一定范围内的元素进行访问
- 通过冒号在中括号内把相隔的两个索引查找出来
[0:3]
- 切片规则,划定范围之后,左含右不含
- 通过切片方式获取的列表不是原列表
- 可以使用
[::-1]
的方式,将该列表进行反序操作 - 可以使用
[-3:-1]
的方式反向获取元素 - 可以通过设置步长的方式来获取切片
[起始元素:终止元素(不包含):步长]
- 可以使用
[0:0]
的方式来生成空列表
索引的获取与修改
- 用法:
list[index]
- 参数
index 代表一个在存在范围内的索引
- 注意:
- 数据的修改只能在索引范围之内
- 列表无法通过添加新的索引的方式来添加值
- 可以通过
list.index(item)
来查找item元素在list中的索引值
pop()函数(根据索引删除列表中的元素)
- 用法:
list.pop(index)
- 参数
index 代表一个在存在范围内的索引
- 注意:
- 数据的修改只能在索引范围之内,如果不存在则会报错
- 函数会删除该索引的元素并返回
del()函数(删除列表或者其中的索引)
- 用法:
del list[index]
- 参数
index 代表一个在存在范围内的索引
- 注意:
- 该函数会直接删除列表中指定索引位置的值,无返回值
- 如果index(索引)不存在则报错
索引和切片在元组中的特殊性
- 元组可以与列表一样获取索引与切片索引
- 元组函数index和列表用法完全一致
- 无法通过修改索引修改与删除元素(元组是不可修改的)
字符串的索引与获取
- 字符串的索引与列表的索引类似
- 字符串中的每个字符都有一个索引位置
- 其余规则与列表索引类似
- 字符串无法通过索引修改与删除
- 字符串不可修改
字符串的find与index函数
- 均用于获取元素的索引位置
- 用法:
string.index(item)
string.find(item)
- 参数
item 希望查找索引位置的元素
- 注意:
- find找不到对应的元素位置会返回-1
- index找不到对应元素的位置会直接报错