Python学习——【4.7】数据容器特点总结及通用操作
【4.7】数据容器特点总结及通用操作
一、数据容器分类
是否支持下标索引
- 支持:列表、元组、字符串 —— 序列类型;
- 不支持:集合、字典 —— 非序列类型。
是否支持重复元素
- 支持:列表、元组、字符串 —— 序列类型;
- 不支持:集合、字典 —— 非序列类型。
是否可以修改
- 支持:列表、集合、字典;
- 不支持:元组、字符串。
数据容器特点对比
基于各类数据容器特点,它们的应用场景
- 列表:一批数据,可修改、可重复的存储场景;
- 元组:一批数据,不可修改、可重复的存储场景;
- 字符串:一串字符串的存储场景;
- 集合:一批数据,去重存储场景;
- 字典:一批数据,可用Key检索Value的存储场景。
二、数据容器的通用操作
(一)遍历
在遍历上:
- 5类数据容器都支持for循环遍历;
- 列表、元组、字符串支持while循环,集合、字典不支持(无法下标索引)。
(二)统计功能
len(容器)
统计容器的元素个数。
my_list = [1, 2, 3]
my_tuple = (1, 2, 3, 4, 5)
my_str = "zhangsan"
my_set = {1, 2, 3, 4, 5}
my_dict = {"k1": 1, "k2": 2, "k3": 3, "k4": 4, "k5": 5}
print(len(my_list)) # 3
print(len(my_tuple)) # 5
print(len(my_str)) # 8
print(len(my_set)) # 5
print(len(my_dict)) # 5
max(容器)
统计容器的最大元素。
my_list = [1, 2, 3]
my_tuple = (1, 2, 3, 4, 5)
my_str = "zhangsan"
my_set = {1, 2, 3, 4, 5}
my_dict = {"k1": 1, "k2": 2, "k3": 3, "k4": 4, "k5": 5}
print(max(my_list)) # 3
print(max(my_tuple)) # 5
print(max(my_str)) # z
print(max(my_set)) # 5
print(max(my_dict)) # k5
min(容器)
统计容器的最小元素。
my_list = [1, 2, 3]
my_tuple = (1, 2, 3, 4, 5)
my_str = "zhangsan"
my_set = {1, 2, 3, 4, 5}
my_dict = {"k1": 1, "k2": 2, "k3": 3, "k4": 4, "k5": 5}
print(min(my_list)) # 1
print(min(my_tuple)) # 1
print(min(my_str)) # a
print(min(my_set)) # 1
print(min(my_dict)) # k1
(三)类型转换
list(容器)
将给定容器转换为列表。
my_list = [1, 2, 3]
my_tuple = (1, 2, 3, 4, 5)
my_str = "zhangsan"
my_set = {1, 2, 3, 4, 5}
my_dict = {"k1": 1, "k2": 2, "k3": 3, "k4": 4, "k5": 5}
print(list(my_list)) # [1, 2, 3]
print(list(my_tuple)) # [1, 2, 3, 4, 5]
print(list(my_str)) # ['z', 'h', 'a', 'n', 'g', 's', 'a', 'n']
print(list(my_set)) # [1, 2, 3, 4, 5]
print(list(my_dict)) # ['k1', 'k2', 'k3', 'k4', 'k5']
str(容器)
将给定容器转换为字符串。
my_list = [1, 2, 3]
my_tuple = (1, 2, 3, 4, 5)
my_str = "zhangsan"
my_set = {1, 2, 3, 4, 5}
my_dict = {"k1": 1, "k2": 2, "k3": 3, "k4": 4, "k5": 5}
print(str(my_list)) # [1, 2, 3]
print(str(my_tuple)) # (1, 2, 3, 4, 5)
print(str(my_str)) # zhangsan
print(str(my_set)) # {1, 2, 3, 4, 5}
print(str(my_dict)) # {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5}
注意,上述转字符串,虽然打印出来的结果好像是列表、元组……,但它们本质上都已经是字符串了(即:"[1, 2, 3]", "(1, 2, 3, 4, 5)"
……),只不过输出结果的时候自动把首尾的引号给去除了。
tuple(容器)
将给定容器转换为元组。
my_list = [1, 2, 3]
my_tuple = (1, 2, 3, 4, 5)
my_str = "zhangsan"
my_set = {1, 2, 3, 4, 5}
my_dict = {"k1": 1, "k2": 2, "k3": 3, "k4": 4, "k5": 5}
print(tuple(my_list)) # (1, 2, 3)
print(tuple(my_tuple)) # (1, 2, 3, 4, 5)
print(tuple(my_str)) # ('z', 'h', 'a', 'n', 'g', 's', 'a', 'n')
print(tuple(my_set)) # (1, 2, 3, 4, 5)
print(tuple(my_dict)) # ('k1', 'k2', 'k3', 'k4', 'k5')
set(容器)
将给定容器转换为集合。
my_list = [1, 2, 3]
my_tuple = (1, 2, 3, 4, 5)
my_str = "zhangsan"
my_set = {1, 2, 3, 4, 5}
my_dict = {"k1": 1, "k2": 2, "k3": 3, "k4": 4, "k5": 5}
print(set(my_list)) # {1, 2, 3}
print(set(my_tuple)) # {1, 2, 3, 4, 5}
print(set(my_str)) # {'z', 'a', 's', 'g', 'h', 'n'}
print(set(my_set)) # {1, 2, 3, 4, 5}
print(set(my_dict)) # {'k5', 'k3', 'k1', 'k2', 'k4'}
(四)排序功能
sorted(容器, [reverse=True])
将给定容器进行排序。(如果添加上reverse=True
,则将结果进行翻转,也就是降序排序)
my_list = [3, 1, 2, 5, 4]
my_tuple = (3, 2, 5, 1, 4)
my_str = "zhangsan"
my_set = {5, 4, 1, 2, 3}
my_dict = {"k1": 4, "k2": 1, "k3": 2, "k4": 3, "k5": 5}
print(sorted(my_list)) # [1, 2, 3, 4, 5]
print(sorted(my_tuple)) # [1, 2, 3, 4, 5]
print(sorted(my_str)) # ['a', 'a', 'g', 'h', 'n', 'n', 's', 'z']
print(sorted(my_set)) # [1, 2, 3, 4, 5]
print(sorted(my_dict)) # ['k1', 'k2', 'k3', 'k4', 'k5']
注意,无论是对什么容器进行排序,排序的结果返回的都是一个列表对象。
原文地址:https://blog.csdn.net/weixin_44421143/article/details/142469086
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!