【Python基础】Python数据容器(总结)

简介: 【Python基础】Python数据容器(总结)

类数据容器的总结对比

数据容器分类

数据容器可以从以下视角进行简单分类:

  • 是否支持下标索引:
  • 支持:列表、元组、字符串 ——序列类型
  • 不支持:集合、字典 ——非序列类型
  • 是否支持重复元素:
  • 支持:列表、元组、字符串 ——序列类型
  • 不支持:集合、字典 ——非序列类型
  • 是否可以修改:
  • 支持:列表、集合、字典 ——序列类型
  • 不支持:元组、字符串 ——非序列类型

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

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

数据容器的通用操作

遍历

  • 5类数据容器都支持for循环遍历
  • 列表、元组、字符串支持while循环,集合、字典不支持(无法下标索引)

尽管遍历的形式各有不同,但是,它们都支持遍历操作

统计功能

快捷按键:按住shift+alt+拖动鼠标

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)}")
print()
# 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)}")
print()
# 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)}")
运行效果:
列表 元素个数有:5
元组 元素个数有:5
字符串 元素个数有:7
集合 元素个数有:5
字典 元素个数有:5
列表 最大的元素是:5
元组 最大的元素是:5
字符串最大的元素是有:g
集合 最大的元素是:5
字典 最大的元素是:key5
列表 最小的元素是:1
元组 最小的元素是:1
字符串最小的元素是有:a
集合 最小的元素是:1
字典 最小的元素是:key1

容器的通用转换功能

# 类型转换:容器转元组
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()
# 类型转换:容器转字符串
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]"
# 元组 转字符串,结果是:(1, 2, 3, 4, 5)     代码中的本体:"(1, 2, 3, 4, 5)"
# 类型转换:容器转集合
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)}")
dict()
# 有转换成字典的函数dict(),但由于他需要 键值对 才能对应,
# 而我们无法凭空变出Value,所以如果试图转换是会报错的
# 但是,字典是可以转换成别的元素的  【过程中,存在丢失Value的问题】
# 仅有转成字符串 Value会保存 ,,转成其他 value都会丢失
运行效果:
列表 转列表,结果是:[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']
列表 转元组,结果是:(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')
列表 转字符串,结果是:[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}
列表 转集合,结果是:{1, 2, 3, 4, 5}
元组 转集合,结果是:{1, 2, 3, 4, 5}
字符串 转集合,结果是:{'c', 'b', 'a', 'd', 'f', 'g', 'e'}
集合 转集合,结果是:{1, 2, 3, 4, 5}
字典 转集合,结果是:{'key2', 'key4', 'key5', 'key1', 'key3'}

通用排序功能

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

说明:第一个参数是被排序的容器,第二个参数是一个有默认值的参数reverse,默认等于false [[[[ 如果想让容器的排序结果进行反转,可以传入Ture

False:从小到大排序

True:从大到小排序

# sorted排序
my_list = [3, 1, 2, 4, 5]
my_tuple = (3, 1, 2, 4, 5)
my_str = "bcadefg"
my_set = {3, 1, 2, 4, 5}
my_dict = {"key3": 1, "key1": 2, "key2": 3, "key4": 4, "key5": 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_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)}")
运行效果:
列表 排序是:[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']
列表 反向排序是:[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']


目录
相关文章
|
17天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
15天前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
25天前
|
开发者 Docker Python
从零开始:使用Docker容器化你的Python Web应用
从零开始:使用Docker容器化你的Python Web应用
34 1
|
28天前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
45 3
|
1月前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
28 1
|
1月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
1月前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
29天前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
74 0
|
1月前
|
数据采集 存储 分布式计算
超酷炫Python技术:交通数据的多维度分析
超酷炫Python技术:交通数据的多维度分析
|
1月前
|
索引 Python
SciPy 空间数据1
SciPy 通过 `scipy.spatial` 模块处理空间数据,如判断点是否在边界内、计算最近点等。三角测量是通过测量角度来确定目标距离的方法。多边形的三角测量可将其分解为多个三角形,用于计算面积。Delaunay 三角剖分是一种常用方法,可以对一系列点进行三角剖分。示例代码展示了如何使用 `Delaunay()` 函数创建三角形并绘制。
34 0