一、数据容器的分类
数据容器可以从一下视角进行简单的分类:
- 是否支持下标索引
- 支持:列表、元组、字符串 --序列类型
- 不支持:集合、字典 --非序列类型
- 是否支持重复元素
- 支持:列表、元组、字符串 --序列类型
- 不支持:集合、字典 --非序列类型
- 是否可以修改
- 支持:列表、集合、字典
- 不支持:元组、字符串
二、数据容器特点对比
列表 | 元组 | 字符串 | 集合 | 字典 | |
元素数量 | 支持多个 | 支持多个 | 支持多个 | 支持多个 | 支持多个 |
元素类型 | 任意 | 任意 | 仅字符 | 任意 | Key:Value |
下标索引 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
重复元素 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
可修改性 | 支持 | 不支持 | 不支持 | 支持 | 支持 |
数据有序 | 是 | 是 | 是 | 否 | 否 |
使用场景 |
| 不可修改、不可重复的一批数据记录场景 | 一串字符的记录场景 | 不可重复的数据记录场景 | 以Key检索Value的数据记录场景 |
1、基于各类数据容器的特点,他们的应用场景如下:
- 列表:一批数据,可修改、可重复的存储场景
- 元组:一批数据,不可修改、可重复的存储场景
- 字符串:一批字符串的存储场景
- 集合:一批数据:去重存储场景
- 字典:一批数据,可用Key检索Value的存储场景
三、数据容器的通用操作-遍历
1、数据容器尽管各自有各自的特点,但是他们也有一些通用的操作
首先,在遍历上:
- 5类数据容器都支持for循环遍历
- 列表、元组、字符串支持while循环,集合、字典不支持(无下标索引)
尽管遍历的形式各有不同,但是,他们都支持遍历操作
2、除了遍历这个共性外,数据容器可以通用非常多的功能方法
以下为代码展示
my_list=[3,1,2,4,5]
my_tuple=(5,3,1,2,4)
my_str="gdfhrnv"
my_set={4,1,3,5,2}
my_dict={"key2":2,"key1":1,"key5":5,"key3":3,"key4":4}
print(f"列表元素的个数有:{len(my_list)}")
print(f"元组元素的个数有:{len(my_tuple)}")
print(f"字符串元素的个数有:{len(my_str)}")
print(f"集合元素的个数有:{len(my_set)}")
print(f"字典元素的个数有:{len(my_dict)}")
# max最大元素
print(f"列表元素的最大元素是:{max(my_list)}")
print(f"元组元素的最大元素是:{max(my_tuple)}")
print(f"字符串元素的最大元素是:{max(my_str)}")
print(f"集合元素的最大元素是:{max(my_set)}")
print(f"字典元素的最大元素是:{max(my_dict)}")
# min最小元素
print(f"列表元素的最小元素是:{min(my_list)}")
print(f"元组元素的最小元素是:{min(my_tuple)}")
print(f"字符串元素的最下元素是{min(my_str)}")
print(f"集合元素的最小元素是:{min(my_set)}")
print(f"字典元素的最小元素是:{min(my_dict)}")
3、容器的通用转换功能
除了下标索引这个共性外,还可以通过类型转换
以下为代码演示
# 类型转换:容器转列表
print(f"列表转列表的结果是:{list(my_list)}")
print(f"元组转列表的结果是:{list(my_tuple)}")
print(f"字符串转列表的结果是:{list(my_str)}")
print(f"集合转列表的结果是:{list(my_set)}")
print(f"字典转列表的结果是:{list(my_dict)}")
# 类型转换:容器转元组
print(f"列表转元组的结果是:{tuple(my_list)}")
print(f"元组转元组的结果是:{tuple(my_tuple)}")
print(f"字符串转元组的结果是{tuple(my_str)}")
print(f"集合转元组的结果是:{tuple(my_set)}")
print(f"字典转元组的结果是:{tuple(my_dict)}")
# 类型转换:容器转字符串
print(f"列表转字符串的结果是:{str(my_list)}")
print(f"元组转字符串的结果是:{str(my_tuple)}")
print(f"字符串转字符串的结果是{str(my_str)}")
print(f"集合转字符串的结果是:{str(my_set)}")
print(f"字典转字符串的结果是:{str(my_dict)}")
# 类型转换:容器转集合
print(f"列表转集合的结果是:{set(my_list)}")
print(f"元组转集合的结果是:{set(my_tuple)}")
print(f"字符串转集合的结果是{set(my_str)}")
print(f"集合转集合的结果是:{set(my_set)}")
print(f"字典转集合的结果是:{set(my_dict)}")
4、容器通用排序功能
以下为代码演示
print(f"列表的排序结果结果是:{sorted(my_list)}")
print(f"元组的排序结果结果是:{sorted(my_tuple)}")
print(f"字符串的排序结果是: {sorted(my_str)}")
print(f"集合排序结果是:{sorted(my_set)}")
print(f"字典排序结果是:{sorted(my_dict)}")
print(f"列表的反向排序结果是:{sorted(my_list,reverse=True)}")
print(f"元组的反向排序反向结果是:{sorted(my_tuple,reverse=True)}")
print(f"字符串的反向排序结果是: {sorted(my_str,reverse=True)}")
print(f"集合的反向排序结果是:{sorted(my_set,reverse=True)}")
print(f"字典的反向排序结果是:{sorted(my_dict,reverse=True)}")
四、容器通用功能总览表
功能 | 描述 |
通用for循环 | 遍历容器(字典是遍历Key) |
max() | 容器内最大元素 |
min() | 容器内最小元素 |
len() | 容器元素个数 |
list() | 转换为列表 |
tuple() | 转换为元组 |
str() | 转换为字符串 |
set() | 转换为集合 |
sorted(序列,[reversed=True]) | 排序,reversed=True表示降序 得到一个排好序的列表 |