前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python数据容器总结

Python数据容器总结

原创
作者头像
Heaven645
发布2024-07-23 02:05:03
1261
发布2024-07-23 02:05:03
举报
文章被收录于专栏:Python学习

前言

Python 作为一种高级编程语言,内置了多种强大的数据容器,帮助开发者以更加直观和灵活的方式处理复杂的数据结构。常见的 Python 数据容器包括列表(List)、元组(Tuple)、字典(Dict)和集合(Set)。每种容器都有其独特的特性和适用场景,适合存储不同类型的数据。


本篇文章参考:黑马程序员

一、数据容器对比

在前面章节的学习中,我们深入了解了列表(List)、元组(Tuple)、字典(Dict)和集合(Set)这五类数据容器的特点及其应用场景。

数据容器特点对比:

二、数据容器的通用操作

数据容器通用功能:

①遍历:

五类数据容器都支持for循环遍历。

基本语法:

for 临时变量 in 数据容器:

  对临时变量进行处理

列表、元组、字符串支持while循环,集合、字典不支持while循环(因为无法下标索引)。

②统计数据容器的元素总数:

统计数据容器中全部元素的数量

语法:len(数据容器)

代码语言:python
代码运行次数:0
复制
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"列表的元素个数:{len(my_list)}")
print(f"元组的元素个数:{len(my_tuple)}")
print(f"字符串的元素个数:{len(my_str)}")
print(f"集合的元素个数:{len(my_set)}")
print(f"字典的元素个数:{len(my_dict)}")

输出结果:

列表的元素个数:5

元组的元素个数:5

字符串的元素个数:7

集合的元素个数:5

字典的元素个数:5

③统计数据容器的最大元素:

语法:max(数据容器)

代码语言:python
代码运行次数:0
复制
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}

# 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)}")

输出结果:

列表最大的元素:5

元组最大的元素:5

字符串最大的元素:g

集合最大的元素:5

字典最大的元素:key5

④统计数据容器的最小元素:

语法:min(数据容器)

代码语言:python
代码运行次数:0
复制
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}

# 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)}")

输出结果:

列表最小的元素:1

元组最小的元素:1

字符串最小的元素:a

集合最小的元素:1

字典最小的元素:key1

⑤排序:

方式一:正向排序

语法:sorted(容器)

注意:排序后得到的对象为列表类型。

代码语言:python
代码运行次数:0
复制
# 进行容器的排序
my_list = [3, 1, 2, 5, 4]
my_tuple = (3, 1, 2, 5, 4)
my_str = "bdcefga"
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)}")#将字典的value统统抛弃,只保留key

输出结果:

列表对象的排序结果:1, 2, 3, 4, 5

元组对象的排序结果:1, 2, 3, 4, 5

字符串对象的排序结果:'a', 'b', 'c', 'd', 'e', 'f', 'g'

集合对象的排序结果:1, 2, 3, 4, 5

字典对象的排序结果:'key1', 'key2', 'key3', 'key4', 'key5'

方式二:反向排序

语法:sorted(容器, reverse=True)

注意:排序后得到的对象为列表类型。

代码语言:python
代码运行次数:0
复制
my_list = [3, 1, 2, 5, 4]
my_tuple = (3, 1, 2, 5, 4)
my_str = "bdcefga"
my_set = {3, 1, 2, 5, 4}
my_dict = {"key3": 1, "key1": 2, "key2": 3, "key5": 4, "key4": 5}

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)}")

输出结果:

列表对象的反向排序结果:5, 4, 3, 2, 1

元组对象的反向排序结果:5, 4, 3, 2, 1

字符串对象反向的排序结果:'g', 'f', 'e', 'd', 'c', 'b', 'a'

集合对象的反向排序结果:5, 4, 3, 2, 1

字典对象的反向排序结果:'key5', 'key4', 'key3', 'key2', 'key1'

⑥类型转换:

list(容器):将给定容器转换为列表

tuple(容器):将给定容器转换为元组

str(容器):将给定容器转换为字符串

set(容器):将给定容器转换为集合

代码语言:python
代码运行次数:0
复制
# 类型转换: 容器转列表
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)}")   #将字典的value统统抛弃,只保留key

输出结果:

列表转列表的结果:1, 2, 3, 4, 5

元组转列表的结果:1, 2, 3, 4, 5

字符串转列表结果:'a', 'b', 'c', 'd', 'e', 'f', 'g'

集合转列表的结果:1, 2, 3, 4, 5

字典转列表的结果:'key1', 'key2', 'key3', 'key4', 'key5'

代码语言:python
代码运行次数:0
复制
# 类型转换: 容器转元组
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)}")   #将字典的value统统抛弃,只保留key

输出结果:

列表转元组的结果:(1, 2, 3, 4, 5)

元组转元组的结果:(1, 2, 3, 4, 5)

字符串转元组结果:('a', 'b', 'c', 'd', 'e', 'f', 'g')

集合转元组的结果:(1, 2, 3, 4, 5)

字典转元组的结果:('key1', 'key2', 'key3', 'key4', 'key5')

代码语言:python
代码运行次数:0
复制
# 类型转换: 容器转字符串
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)}")

输出结果:

列表转字符串的结果是:1, 2, 3, 4, 5

元组转字符串的结果是:(1, 2, 3, 4, 5)

字符串转字符串结果是:abcdefg

集合转字符串的结果是:{1, 2, 3, 4, 5}

字典转字符串的结果是:{'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4, 'key5': 5}

代码语言:python
代码运行次数:0
复制
# 类型转换: 容器转集合
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)}")   #将字典的value统统抛弃,只保留key

输出结果:

列表转集合的结果:{1, 2, 3, 4, 5}

元组转集合的结果:{1, 2, 3, 4, 5}

字符串转集合结果:{'a', 'e', 'c', 'g', 'f', 'd', 'b'}

集合转集合的结果:{1, 2, 3, 4, 5}

字典转集合的结果:{'key1', 'key2', 'key4', 'key3', 'key5'}

【拓展】字符串大小比较

在程序中,字符串所用的所有字符,如大小写英文单词、数字、特殊符号(!、\、|、@、#、空格等)都有其对应的ASCII码表值,即每一个字符都能对应上一个数字的码值。

比较规则:

  • 字符比较: 基于数字的码值大小进行比较
  • 字符串比较: 从字符串的第一个字符开始逐一比较,直到找到不同的字符为止。如果某个字符串在比较中到达了结束而另一个字符串还有剩余字符,则较长的字符串被认为大于较短的字符串。

【分析】

字符串"abc"与字符串"abd"进行比较:

先比较 "abc" 的第一个字符 'a' 和 "abd" 的第一个字符 'a','a' 等于 'a',继续比较下一个字符;

比较 "abc" 的第二个字符 'b' 和 "abd" 的第二个字符 'b','b' 等于 'b',继续比较下一个字符;

比较 "abc" 的第三个字符 'c' 和 "abd" 的第三个字符 'd',此时'c' 和 'd' 是不同的字符,根据ASCII码表,'c' 的编码值为 99,'d' 的编码值为 100,因此,'c' < 'd'。

综上所述,字符串"abc"小于字符串"abd"。

【分析】

字符串"a"与字符串"ab"进行比较:

先比较 "a" 的第一个字符 'a' 和 "ab" 的第一个字符 'a','a' 等于 'a',继续比较下一个字符;

对于字符串 "a",已经没有更多的字符可以比较,因为它只有一个字符。而对于字符串 "ab",第二个字符是 'b'。根据字符串比较的规则,字符串"a"小于字符串"ab"。

代码语言:python
代码运行次数:0
复制
# abc比较abd
print(f"abd>abc:{"abd">"abc"}")
# a比较ab
print(f"ab>a:{"ab">"a"}")
# a比较A
print(f"a>A:{"a">"A"}")
# key1比较key2
print(f"Key2>key2:{"key2">"key1"}")

输出结果:

abd>abc:True

ab>a:True

a>A:True

Key2>key2:True

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、数据容器对比
  • 二、数据容器的通用操作
  • 【拓展】字符串大小比较
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档