Python--数据容器总结

news2024/9/28 23:32:15

一、数据容器的分类

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

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

二、数据容器特点对比

列表元组字符串集合字典
元素数量支持多个支持多个支持多个支持多个支持多个
元素类型任意任意仅字符任意Key:Value
下标索引支持支持支持不支持不支持
重复元素支持支持支持不支持不支持
可修改性支持不支持不支持支持支持
数据有序
使用场景
  • 可修改、可重复的一批数据记录场景
不可修改、不可重复的一批数据记录场景一串字符的记录场景不可重复的数据记录场景以Key检索Value的数据记录场景

 

 

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

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

三、数据容器的通用操作-遍历

1、数据容器尽管各自有各自的特点,但是他们也有一些通用的操作

首先,在遍历上:

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

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

2、除了遍历这个共性外,数据容器可以通用非常多的功能方法

 以下为代码展示

my_list=[3,1,2,4,5]
my_tuple=(5,3,1,2,4)
my_str="gdfhrnv"
my_set={4,1,3,5,2}
my_dict={"key2":2,"key1":1,"key5":5,"key3":3,"key4":4}

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

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

3、容器的通用转换功能

除了下标索引这个共性外,还可以通过类型转换

以下为代码演示

# 类型转换:容器转列表
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(f"列表转字符串的结果是:{str(my_list)}")
print(f"元组转字符串的结果是:{str(my_tuple)}")
print(f"字符串转字符串的结果是{str(my_str)}")
print(f"集合转字符串的结果是:{str(my_set)}")
print(f"字典转字符串的结果是:{str(my_dict)}")
# 类型转换:容器转集合
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、容器通用排序功能

以下为代码演示

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

四、容器通用功能总览表

功能描述
通用for循环遍历容器(字典是遍历Key)
max()容器内最大元素
min()容器内最小元素
len()容器元素个数
list()转换为列表
tuple()转换为元组
str()转换为字符串
set()转换为集合
sorted(序列,[reversed=True])

排序,reversed=True表示降序

得到一个排好序的列表

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动生成单测代码插件Squaretest

今天来介绍一款工具Squaretest,它是一款自动生成单元测试的插件,会用到它也是因为最近公司上了代码质量管控的指标,会考评各个项目的单元测试覆盖率,以及sonar扫描出来的各种问题。 很多老项目老代码,或者着急交付的项…

第十八讲:神州三层交换机DHCP中继服务的配置

当DHCP客户机和DHCP服务器不在同一个网段时,由DHCP中继传递DHCP报文。增加DHCP中继功能的好处是不必为每个网段都设置DHCP服务器,同一个DHCP服务器可以为很多个子网的客户机提供网络配置参数,即节约了成本又方便了管理。这就是DHCP中继的功能…

vue经历从2.0到3.0更新

​编辑vue专栏收录该内容 9 篇文章2 订阅 订阅专栏 vue经历从2.0到3.0更新之后,简⽽⾔之就是变得更轻,更快,使⽤起来更加⽅便,每⼀次的版本迭代都是对上⼀个版本的升级优化,不管 是对于我们开发者还是对于⽤户体验都…

铁威马NAS教程之使用CloudSync应用轻松同步备份网盘数据

铁威马在TOS 5系统中,将各种云盘的同步集合到了一个应用——CloudSync,更方便用户使用。只需要下载安装CloudSync,就可以在TNAS和各种云盘之间,实现快速安全的数据同步、分享文件。 1.TOS应用中心下载CloudSync应用; …

中国霍尔效应电流传感器市场规模达到了192.71百万美元?

霍尔效应,是指有小电流通过的一个半导体薄片置于磁场中,受到磁场作用影响电流发生偏转,在控制电流的垂直方向上的半导体两侧形成了电压差,该电势差就是霍尔电压。霍尔电压的大小,与磁场强度和半导体内通过的控制电流成…

JSP ssh 在线英语学习平台myeclipse开发oracle数据库MVC模式java编程计算机网页设计

一、源码特点 JSP ssh在线英语学习平台是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S 模式开发。开发环境为TOMCAT7.0…

【MySQL从入门到精通】【高级篇】(三十)记一次mysql5.7的新特性derived_merge的坑

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…

深度学习 Day23——利用RNN实现天气预测

深度学习 Day23——利用RNN实现天气预测 文章目录深度学习 Day23——利用RNN实现天气预测一、前言二、我的环境三、前期工作1、导入依赖项2、导入数据3、查看数据基本信息4、查看各列数据的数据类型5、转换数据集中有关时间数据转换为时间格式6、删除Date标签列7、查看所有列的…

多版本并发控制(MVCC)

MVCC机制概述 MVCC(Multi-Version Concurrency Control),中文是多版本并发控制,是指在使用READ COMMITTED、REPEATABLE READ这两种隔离级别的事务在执行SELECT操作时访问记录的版本链的过程,从而在不加锁的前提下使不…

基于LSTM三分类的文本情感分析,采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种

基于LSTM三分类的文本情感分析,采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种 ,含数据集可直接运行 完整代码下载地址:基于LSTM三分类的文本情感分析 基于LSTM三分类的文本情感分析 背景介绍 文本情感分析…

Comic Life - 超棒的漫画制作工具,拥有多种动画模版,创作属于自己的漫画

Comic Life - 超棒的漫画制作工具,拥有多种动画模版,创作属于自己的漫画 Comic Life是一个照片编辑器,能够添加各种效果,并基于它们创建漫画。该工具包包括各种各样的模板,可以很容易地将照片放置在工作表上&#xff0…

CKEditor 为你的Flask项目添加一个富文本编辑器

人家高高在上的CKEditor是有个官网的!! WYSIWYG HTML Editor with Collaborative Rich Text EditingRock-solid, Free WYSIWYG Editor with Collaborative Editing, 200 features, Full Documentation and Support. Trusted by 20k companies.https://c…

SBM模型分析全流程

数据包络分析DEA时,其研究投入产出效率情况,并且其假定投入和产出之间存在单调线性关系,其为一种线性规划技术来确定DMU相对效率的方法。但有时候会多出下‘非期望产出’,就是不希望有它产出,比如资金投入、教育投入换…

【Unity3D日常开发】Unity3D拓展开发:UI界面控制,UI界面的显示和隐藏实现

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在开发中,可能遇到管理…

2022最后一天盘点

今天是今年最后的一天工作日,对于我来说就是今年的最后一天,因为放假了我就不需要思考了(当然公司后端程序员要保持24小时oncall) 1 阳完之后 还是有些 咳嗽,公司此起彼伏的咳嗽声,不知道什么时候所有人都…

21.合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 [], l2 [] 输出:[…

【日常系列】LeetCode《23·回溯2》

数据规模->时间复杂度 <10^4 &#x1f62e;(n^2) <10^7:o(nlogn) <10^8:o(n) 10^8<:o(logn),o(1) 内容 lc 401 &#xff1a;二进制手表 https://leetcode.cn/problems/binary-watch/ 提示&#xff1a; 0 < turnedOn < 10 class Solution:def readBinary…

java jvm详解

java 系列文章之JVM 文章目录java 系列文章之JVM一、JVM1.基本概念2.运行过程二、线程三、JVM 内存区域1. 程序计数器(线程私有)2. 虚拟机栈(线程私有)3. 本地方法区(线程私有)4. 堆&#xff08;Heap-线程共享&#xff09;-运行时数据区5. 方法区/永久代&#xff08;线程共享&a…

UE4.27 C++调用DLL

1.首先在UE C项目中添加一个x64动态链接库&#xff0c;取名RouteInterface,放到Source下面&#xff1b; 2.在Source下面新建两个文件夹Include和Lisbs,这两个文件夹用来保存库的头文件和lib文件 3.在项目RouteInterface下面添加一个类&#xff1a;TestDll,并且把头文件保存到…

Mybatis-Plus查询投影与查询条件设置

目录 查询投影 查询指定字段 聚合查询 分组查询 查询条件设置 等值查询 范围查询 模糊查询 排序查询 查询投影 目前我们在查询数据的时候&#xff0c;什么都没有做默认就是查询表中所有字段的内容而查询投影即不查询所有字段&#xff0c;只查询出指定内容的数据 查询指…