Python数据容器:数据容器的分类、数据容器特点总结、各数据容器遍历的特点、数据容器通用操作(统计,转换,排序)
目录
数据容器的分类
数据容器特点总结
数据容器遍历的特点
通用操作
通用统计len()、max()、min()
通用转换list()、tuple()、str()、set()
通用排序sorted
数据容器的分类
分类:
- 是否支持下标索引
- 支持:列表、元组、字符串-序列类型
- 不支持:集合、字典-非序列类型
- 是否支持重复元素
- 支持:列表、元组、字符串-序列类型
- 不支持:集合、字典(键不能重复)-非序列类型
- 是否支持修改
- 支持:列表、集合、字典
- 不支持:元组、字符串
数据容器特点总结
列表 | 元组 | 字符串 | 集合 | 字典 | |
元素数量 | 支持多个 | 支持多个 | 支持多个 | 支持多个 | 支持多个 |
元素类型 | 任意 | 任意 | 仅字符 | 任意 | Key是除集合和字典外的任意类型; Value是任意类型 |
下标索引 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
重复元素 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
可修改性 | 支持 | 不支持 | 不支持 | 支持 | 支持 |
数据有序 | 是 | 是 | 是 | 否 | 否 |
使用场景 | 可修改、可重复的一批数据记录场景 | 不可修改、可重复的一批数据记录场景 | 一串字符记录场景 | 一批数据,去重存储场景 | 一批数据,以key检索Value的数据记录场景 |
数据容器遍历的特点
数据容器的遍历:
- 5类数据容器都支持for循环
- 列表、元组、字符串都支持while循环,集合和字典不支持(没有下标索引)
通用操作
通用统计len()、max()、min()
数据容器的通用操作:
- len(容器):统计容器的元素的个数
- max(容器):统计容器的最大元素
- min(容器):统计容器的最小元素
那么字符串进行大小比较,是如何比较的呢?
- 字符串是基于字符在ASCII码表对应的值进行比较的
- 字符串是按位比较的(从前向后),只要有一位大,那么整体就大
通用转换list()、tuple()、str()、set()
- list(容器):将容器转换为列表
- tuple(容器):将容器转换为元组
- str(容器):将容器转换为字符串
- set(容器):将容器转换为集合
示例如下:
list_test = [1, 2, 2, "3", 4]
tuple_test = (1, 2, 2, "3", 4)
str_test = "12234"
set_test = {1, 2, "3", 4}
dict_test = {1: "Hello", 2: "World", 3: "Content"}
print("--------------------------------------------------------------------")
print(f"列表转列表:{list(list_test)}")
print(f"元组转列表:{list(tuple_test)}")
print(f"字符串转列表:{list(str_test)}")
print(f"集合转列表:{list(set_test)}")
print(f"字典转列表:{list(dict_test)}")
print("--------------------------------------------------------------------")
print(f"列表转元组:{tuple(list_test)}")
print(f"元组转元组:{tuple(tuple_test)}")
print(f"字符串转元组:{tuple(str_test)}")
print(f"集合转元组:{tuple(set_test)}")
print(f"字典转元组:{tuple(dict_test)}")
print("--------------------------------------------------------------------")
print(f"列表转字符串:{str(list_test)},类型:{type(str(list_test))}")
print(f"元组转字符串:{str(tuple_test)},类型:{type(str(tuple_test))}")
print(f"字符串转字符串:{str(str_test)},类型:{type(str(str_test))}")
print(f"集合转字符串:{str(set_test)},类型:{type(str(set_test))}")
print(f"字典转字符串:{str(dict_test)},类型:{type(str(dict_test))}")
print("--------------------------------------------------------------------")
print(f"列表转集合:{set(list_test)}")
print(f"元组转集合:{set(tuple_test)}")
print(f"字符串转集合:{set(str_test)}")
print(f"集合转集合:{set(set_test)}")
print(f"字典转集合:{set(dict_test)}")
运行
通用排序sorted
通用排序功能:将给定的容器进行排序(一般都是对容器中的数字进行排序,即相同类型进行排序)
语法:
sorted(容器, reverse=True)
注意:
- reverse可不写,默认排序为正向,如果想要容器的排序结果反转,则令reverse=True
- 排序的结果会放入到新列表中
示例如下:
list_test = [10, 2, 2, 3, 4]tuple_test = (8, 2, 2, 3, 4)str_test = "dafkgbc"set_test = {1, 3, 2, 4}dict_test = {1: "Hello", 2: "World", 3: "Content"}print(sorted(list_test))print(sorted(tuple_test))print(sorted(str_test))print(sorted(set_test))print(sorted(dict_test))print("反向排序-----------------------------------------------------")print(sorted(list_test, reverse=True))print(sorted(tuple_test, reverse=True))print(sorted(str_test, reverse=True))print(sorted(set_test, reverse=True))print(sorted(dict_test, reverse=True))
运行