列表
列表的概念
大量数据的存储模型
列表的特点
具有索引的概念,可以通过索引操作列表中的数据。列表中的数据可以进行添加、删除、修改、查询等操作
列表的基本语法
创建列表: 变量名 = [数据1,数据2,……]
获取列表数据: 变量名[索引]
修改列表数据: 变量名[索引] = 值
列表常用方法
方法名 | 功能 | 参数 | 返回值 |
append(data) 关键词:追加 | 在列表的末尾添加数据 | data:加入到列表中的数据 | None |
insert(idx,data) 关键词:插入 | 在列表的指定位置插入数据,如果索引位置超过列表数据总量,数据将插入到列表末尾 | idx:插入数据的索引位置 data:加入列表中的数据 | None |
extend(model) 关键词:追加全部 | 在列表的末尾添加参数对象中的所有数据 | model:保存有数据的存储模型,该模型接受列表、元组、集合类型的对象 | None |
remove(data) 关键词:删除 | 从列表中删除指定的数据,如果数据不存在将报错 | data:要从列表中删除的数据 | None |
pop(idx) 关键词:获取删除 | 从列表中获取并删除指定索引位置上的数据,如果索引值超过列表数据总量将报错 | idx:要从列表中获取的数据对应的索引位置 | 获取到的数据 |
clear() 关键词:清空 | 清空列表中的数据 | 无 | None |
index(data) 关键词:查询位置 | 查询列表中指定数据对应的索引,如果数据不存在将报错 | data:在列表中要查询的数据 | 查询数据第一次出现的索引 |
count(data) 关键词:统计数量 | 统计列表中指定数据出现的数量 | data:在列表中要统计数量的数据 | 统计数据出现的次数 |
元组
元组的概念
固定数据的存储模型
元组的特点
元组具有索引的概念,可以通过索引操作元组中的数据。元组中的数据可以进行查询操作,但不能进行添加、删除、修改操作
元组的基本语法
变量名
变量名[索引]
元组常用方法
方法名 | 功能 | 参数 | 返回值 |
index(data) 关键词:查询位置 | 查询元组中指定数据对应的索引,如果数据不存在将报错 | data:在元组中要查询的数据 | 查询数据第一次出现的索引 |
count(data) 关键词:统计数量 | 统计元组中指定数据出现的数量 | data:在元组中要统计数量的数据 | 统计数据出现的次数 |
注意事项
非引用类型数据,不允许修改
引用类型对象,该对象不允许替换,而对象的属性值可以发生改变
元组的特殊应用
自动组包:将多个数据赋值给一个变量时,多个数据将包装成一个元组,将元组赋值给变量,该过程称为自动组包。
应用场景:设置返回值为多个值
return 1,2,3 等同于
应用场景:动态字符串赋值传值方式
print(“坐标%d,%d” % (10,20))
自动解包:将元组赋值给多个变量时,如果元组数据的数量与变量的数量相同,元组将被自动拆分成多个值,并赋值给对应变量,该过程称为自动解包。
应用场景:多个变量接收返回值
a,b,c = func()等同于 a,b,c = (1,2,3)等同于a,b,c = 1,2,3
应用场景:动态字符串赋值取值方式
print(“坐标%d,%d” % (10,20)) 将10给第一个%d,将20给第二个%d
集合
集合的概念
无序不重复数据的存储模型
集合的特点
没有索引的概念。集合中的数据可以进行添加、删除等操作
集合的基本语法
变量名 = {数据1,数据2,……}
集合常用方法
方法名 | 功能 | 参数 | 返回值 |
add(data) 关键词:添加 | 在集合中添加数据 | data:加入到集合中的数据 | None |
remove(data) 关键词:删除 | 从集合中删除指定的数据,如果数据不存在将报错 | data:要从集合中删除的数据 | None |
pop() 关键词:获取删除 | 从集合中获取并删除第一个数据 | 无 | 获取到的数据 |
clear() 关键词:清空 | 清空集合中的数据 | 无 | None |
字典
字典的概念
键值对结构”存储数据的存储模型
字典的特点
不具有索引的概念,字典使用键key代替索引,可以通过键操作字典中存储的数据值value。字典可以根据键key进行数据的添加、删除、修改、查询操作。
字典的基本语法
创建字典: 变量名
添加数据: 变量名[键] = 值 (字典中没有对应的键)
获取数据: 变量名[键]
修改数据: 变量名[键] = 值 (字典中存在对应的键)
字典常用方法
方法名 | 功能 | 参数 | 返回值 |
pop(key) 关键词:删除获取 | 从字典中删除指定键key对应的键值对, 如果键key不存在将报错 | key:要删除的值value对应的键key | 被删除的值value |
popitem() 关键词:删除 | 从字典中删除指定键key对应的键值对, 如果键key不存在将报错 | key:要删除的键值对对应的键key | 被删除的键值对,以元组的形式返回 |
clear() 关键词:清空 | 清空字典中的数据 | 无 | None |
setdefault(key,value) 关键词:检测添加 | 添加新的键值对,如果存在对应的键, 否则忽略该操作 | key:要添加的新键值对对应的键key value: 要添加的新键值对对应的值value | 字典中key对应的值,如果是添加则返回参数value, 如果不是添加,返回原始key对应的value |
update(dict) 关键词:更新数据 | 使用新字典中的数据对原始字典数据进行更新 | dict:新字典对象 | None |
get(key) 关键词:获取 | 根据键key查询字典中对应的值, 如果键key不存在将返回None | key:要查询的键key | 根据键key在字典中查询的值value |
keys() 关键词:获取键列表 | 获取字典中所有的键key组成的列表数据 | 无 | 由所有键组成的列表 |
values() 关键词:获取值列表 | 获取字典中所有的值value组成的列表数据 | 无 | 由所有值组成的列表 |
items() 关键词:获取键值对列表 | 获取字典中所有的键值对列表数据 | 无 | 由键值对组成的列表,键值对的格式是元组数据 |
注意事项
字典中的键是唯一的
字典的作用
少量数据,并且期望在编程期以最快的速度获取单个数据, 推荐选择字典。
非对象格式保存单个对象的属性值,推荐选择字典。
格式转换
| 转换成列表 | 转换成元组 | 转换成集合 |
列表list | — | tuple(列表对象) | set(列表对象) |
元组tuple | list(元组对象) | — | set(元组对象) |
集合set | list(集合对象) | tuple(集合对象) | — |
数据存储结构嵌套
数据存储结构嵌套概念
数据结构嵌套指一种数据结构中包含的数据是另一种数据结构
公共方法
方法名 | 功能 | 参数 | 返回值 |
len(model) 关键词:数据总量 | 获取容器模型中的数据总量 | model:保存有数据的存储模型,该模型接受各种容器 | 容器模型中数据的总量 |
max(model) 关键词:最大值 | 获取容器模型中的最大值,对于字典获取字典的键key的最大值 | model:保存有数据的存储模型,该模型接受各种容器 | 容器模型中数据的最大值 |
min(model) 关键词:最小值 | 获取容器模型中的最小值,对于字典获取字典的键key的最小值 | model:保存有数据的存储模型,该模型接受各种容器 | 容器模型中数据的最小值 |
切片
切片的作用
获取列表、元组或字符串中的局部数据
切片基本语法
容器对象[开始索引:结束索引:步长]
特殊格式:
省略开始索引:默认开始索引为0
范例:list1[:5:1] 等同于 list1[0:5:1]
省略结束索引:默认结束索引为数据总量
范例:list1[0::1] 等同于 list1[0:len(list1):1]
省略步长:每次递增索引数为1
范例:list1[0:5:] 等同于 list1[0:5:1]
负数步长: 反向操作/反向步长操作,需要开始索引、结束索引逆序输入
范例:list1[5:0:-1]
常见格式:
范例:list1[:5:] 获取索引5之前的数据(不含5)
范例:list1[4::] 获取索引4之后的数据(含4)
通用运算符
运算符 | 功能 | 格式 | 适用范围 |
+ | 将两个容器数据合并放入第一个容器 | list1 + list2 | 列表之间或元组之间 (列表与元组之间报错) |
* | 将容器数据复制n次放入容器中 | list1 * n | 列表、元组 |
in | 判断容器中是否包含数据 | data in list1 | 列表、元组、集合、字典 (字典判断数据是否在keys()中) |
not in | 判断容器中是否不包含数据 | data not in list1 | 列表、元组、集合、字典 (字典判断数据是否不在keys()中) |
>、>=、==、<=、< | 比较两个容器中的数据关系 | list1 <= list2 | 列表、元组、集合 |