自学内容网 自学内容网

Python学习——【4.7】数据容器特点总结及通用操作

【4.7】数据容器特点总结及通用操作

一、数据容器分类

是否支持下标索引

  • 支持:列表、元组、字符串 —— 序列类型;
  • 不支持:集合、字典 —— 非序列类型。

是否支持重复元素

  • 支持:列表、元组、字符串 —— 序列类型;
  • 不支持:集合、字典 —— 非序列类型。

是否可以修改

  • 支持:列表、集合、字典;
  • 不支持:元组、字符串。

数据容器特点对比

image-20240923205130806

基于各类数据容器特点,它们的应用场景

  • 列表:一批数据,可修改、可重复的存储场景;
  • 元组:一批数据,不可修改、可重复的存储场景;
  • 字符串:一串字符串的存储场景;
  • 集合:一批数据,去重存储场景;
  • 字典:一批数据,可用Key检索Value的存储场景。

二、数据容器的通用操作

image-20240923212232647

(一)遍历

  在遍历上:

  • 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)!