我什么都没有忘,只是有些事只适合收藏,不能说,不能想,却也不能忘
——24.2.4
一、数据容器的分类
数据容器可以从以下视角进行简单的分类
1.是否支持下标索引:
支持:列表元组、字符串——序列类型
不支持:集合、字典——非序列类型
2.是否支持重复元素:
支持:列表、元组、字符串——序列类型
不支持:集合、字典——非序列类型
3.是否可以修改:
支持:列表、集合、字典
不支持:元组、字符串
二、应用场景
1.基于各类数据容器的特点,它们的应用场景如下:
列表:一批数据,可修改,可重复的存储场景
元组:一批数据,不可修改,可重复的存储场景
字符串:一串字符串的存储场景
集合:一批数据,去重存储场景
字典:一批数据,可用Key检索Value的存储场景
三、数据容器的通用操作
1.数据容器的通用操作——遍历
数据容器都支持for循环遍历
列表、元组、字符串支持while循环,集合、字典不支持(无法下标索引)
尽管遍历的形式各有不同,但是都支持遍历操作
2.数据容器的通用统计功能
len(容器)
统计容器的元素个数
max(容器)
统计容器的最大元素
min(容器)
统计容器的最小元素
# 演示数据容器的通用功能
my_list = [1,2,3,4,5]
my_tuple = (1,2,3,4,5)
my_str = 'abcdefg'
my_set = {1,2,3,4,5}
my_dict = {'key1':1,'key2':2,'key3':3,'key4':4,'key5':5}
# len()函数元素个数
print(f"列表my_list元素个数有:{len(my_list)}")
print(f"元组my_tuple元素个数有:{len(my_tuple)}")
print(f"字符串my_str元素个数有:{len(my_str)}")
print(f"集合my_set元素个数有:{len(my_set)}")
print(f"字典my_dict元素个数有:{len(my_dict)}")
# max()函数最大元素
print(f"列表my_list最大元素是:{max(my_list)}")
print(f"元组my_tuple最大元素是:{max(my_tuple)}")
print(f"字符串my_str最大元素是:{max(my_str)}")
print(f"集合my_set最大元素是:{max(my_set)}")
print(f"字典my_dict最大元素是:{max(my_dict)}")
# min()函数最小元素
print(f"列表my_list最小元素是:{min(my_list)}")
print(f"元组my_tuple最小元素是:{min(my_tuple)}")
print(f"字符串my_str最小元素是:{min(my_str)}")
print(f"集合my_set最小元素是:{min(my_set)}")
print(f"字典my_dict最小元素是:{min(my_dict)}")
3.数据容器的通用转换功能
除了下标索引这个共性外,还可以通用类型转换
list(容器) 将给定容器转换为列表
str(容器) 将给定容器转换为字符串
tuple(容器) 将给定容器转换为元组
set(容器) 将给定容器转换为集合
# 类型转换:容器转列表
# list(容器)将给定容器转换为列表
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)}")
# 类型转换:容器转元组
# tuple(容器)将给定容器转换为元组
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)}")
# 类型转换:容器转字符串
# str(容器) 将给定容器转换为字符串
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)}")
# 类型转换:容器转集合
# set(容器)将给定容器转换为集合
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.数据容器通用排序功能
通用排序功能
sorted(容器,[reverse = True])
reverse = True,代表降序排序
将给定容器进行排序
排序的结果会变成列表对象
# sorted()函数进行容器的排序
my_list = [3,1,2,5,4]
my_tuple = (3,1,2,5,4)
my_str = 'bdcafeg'
my_set = {3,1,2,5,4}
my_dict = {'key3':1,'key1':2,'key2':3,'key5':4,'key4':5}
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_tuple,reverse=True)}")
print(f"元组对象反向排序的结果是:{sorted(my_str,reverse=True)}")
print(f"字符串对象反向排序的结果是:{sorted(my_set,reverse=True)}")
print(f"集合对象反向排序的结果是:{sorted(my_dict,reverse=True)}")
print(f"字典对象反向排序的结果是:{sorted(my_list,reverse=True)}")
5.容器通用功能总览
拓展——字符串大小比较
每一个字符串都能对应上一个:数字的码值
字符串进行比较就是基于数字的码值大小进行比较的
字符串比较
字符串是按位比较,也就是一位位进行对比,只要有一位大,整体就大,后面的无需比较,每一位根据ASCII码值比较