Python学习从0到1 day14 Python数据容器.5.总结及通用操作

news2024/9/25 7:22:16

我什么都没有忘,只是有些事只适合收藏,不能说,不能想,却也不能忘

                                                                                                  ——24.2.4

一、数据容器的分类

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

1.是否支持下标索引:

        支持:列表元组、字符串——序列类型

        不支持:集合、字典——非序列类型

2.是否支持重复元素:

        支持:列表、元组、字符串——序列类型

        不支持:集合、字典——非序列类型

3.是否可以修改:

        支持:列表、集合、字典

        不支持:元组、字符串

二、应用场景

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

        列表:一批数据,可修改,可重复的存储场景

        元组:一批数据,不可修改,可重复的存储场景

        字符串:一串字符串的存储场景

        集合:一批数据,去重存储场景

        字典:一批数据,可用Key检索Value的存储场景

三、数据容器的通用操作

1.数据容器的通用操作——遍历

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

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

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

2.数据容器的通用统计功能

len(容器)

统计容器的元素个数

max(容器)

统计容器的最大元素

min(容器)

统计容器的最小元素

# 演示数据容器的通用功能
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"列表my_list元素个数有:{len(my_list)}")
print(f"元组my_tuple元素个数有:{len(my_tuple)}")
print(f"字符串my_str元素个数有:{len(my_str)}")
print(f"集合my_set元素个数有:{len(my_set)}")
print(f"字典my_dict元素个数有:{len(my_dict)}")

# max()函数最大元素
print(f"列表my_list最大元素是:{max(my_list)}")
print(f"元组my_tuple最大元素是:{max(my_tuple)}")
print(f"字符串my_str最大元素是:{max(my_str)}")
print(f"集合my_set最大元素是:{max(my_set)}")
print(f"字典my_dict最大元素是:{max(my_dict)}")

# min()函数最小元素
print(f"列表my_list最小元素是:{min(my_list)}")
print(f"元组my_tuple最小元素是:{min(my_tuple)}")
print(f"字符串my_str最小元素是:{min(my_str)}")
print(f"集合my_set最小元素是:{min(my_set)}")
print(f"字典my_dict最小元素是:{min(my_dict)}")

3.数据容器的通用转换功能

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

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

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

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

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

# 类型转换:容器转列表
# list(容器)将给定容器转换为列表
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)}")

# 类型转换:容器转元组
# tuple(容器)将给定容器转换为元组
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)}")

# 类型转换:容器转字符串
# str(容器) 将给定容器转换为字符串
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)}")

# 类型转换:容器转集合
# set(容器)将给定容器转换为集合
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.数据容器通用排序功能 

通用排序功能

sorted(容器,[reverse = True])

reverse = True,代表降序排序 

将给定容器进行排序

排序的结果会变成列表对象

# sorted()函数进行容器的排序
my_list = [3,1,2,5,4]
my_tuple = (3,1,2,5,4)
my_str = 'bdcafeg'
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

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)}")
print(f"字典对象反向排序的结果是:{sorted(my_list,reverse=True)}")

5.容器通用功能总览

拓展——字符串大小比较

每一个字符串都能对应上一个:数字的码值

字符串进行比较就是基于数字的码值大小进行比较的

字符串比较

字符串是按位比较,也就是一位位进行对比,只要有一位大,整体就大,后面的无需比较,每一位根据ASCII码值比较

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

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

相关文章

华为机考入门python3--(9)牛客9-提取不重复的整数

分类:列表 知识点: 从右往左遍历每一个字符 my_str[::-1] 题目来自【牛客】 def reverse_unique(n): # 将输入的整数转换为字符串,这样可以从右向左遍历每一位 str_n str(n) # 创建一个空列表来保存不重复的数字 unique_digits []…

从零开始手写mmo游戏从框架到爆炸(十一)— 注册与登录

导航:从零开始手写mmo游戏从框架到爆炸(零)—— 导航-CSDN博客 从这一章开始,我们进入业务的部分,从注册登录开始。 创建注册和登录的路由 package com.loveprogrammer.command.server;public interface Se…

使用easyExcel 定义表头 字体 格式 颜色等,定义表内容,合计

HeadStyle 表头样式注解 HeadFontStyle 表头字体样式 HeadStyle(fillPatternType FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor 22) HeadFontStyle(fontHeightInPoints 12) 以下为实现效果

《图像处理》 图像细化

前言 图像细化算法又称之为Thinning Algorithms,或者骨架提取(skeleton)。该算法通常用于手写体数字的细化,输入的图像要求是黑白图像,即二值图像。从白色区域提取出该区域的中心线,中心线对于白色区域相当…

OpenMLDB 作为中国唯一的特征平台产品入选 2023 Gartner 研究报告

在国际权威咨询与研究机构 Gartner 发布的重要研究报告《The Logical Feature Store: Data Management for Machine Learning》(《逻辑特征存储:机器学习的数据管理》,下文简称报告)中,OpenMLDB 荣幸作为中国唯一的特征平台代表产…

vite项目配置根据不同的打包环境使用不同的请求路径VITE_BASE_URL,包括报错解决

vite环境配置可以看官方文档:环境变量和模式 | Vite 官方中文文档 创建环境配置文件 在项目根目录下面创建.env和.env.production文件,.env是开发环境使用的,.env.production是生产环境使用的。 .env文件: # 基本环境 VITE_APP…

PyTorch 2.2 中文官方教程(一)

PyTorch 秘籍 PyTorch 秘籍 原文:pytorch.org/tutorials/recipes/recipes_index.html 译者:飞龙 协议:CC BY-NC-SA 4.0 秘籍是关于如何使用特定 PyTorch 功能的简短、可操作的示例,与我们的全长教程不同。 PyTorch 原型示例 原文…

7机器人位姿的数学描述与坐标变

由上次刚体的空间转动直接切换为机器人相关术语。 1.机器人位姿的数学描述与坐标变换 1.1位姿描述 {B}相对于{A}的姿态描述用3x3矩阵表示为: 式中为三个单位正交主矢量,分别表示刚体坐标系{B}的三个坐标轴XBYBZB在参考系{A}中的方位,∠XBXA表…

单片机——FLASH(2)

文章目录 flash (stm32f40x 41x的内存映射中区域详解)flash写数据时 flash (stm32f40x 41x的内存映射中区域详解) Main memory 主存储区 放置代码和常数 System memory 系统存储区 方式bootloader代码 OTP区 一次性可编程区 选项…

MYSQL存储过程(含入参、出参)

1、创建库存表语句 -- eladmin.t_stock definitionCREATE TABLE t_stock (id bigint(20) NOT NULL AUTO_INCREMENT,quantity bigint(20) NOT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT4101 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_bin; id为主键,便于…

YOLOv7独家原创改进:大核卷积涨点系列| Shift-ConvNets,稀疏/移位操作让小卷积核也能达到大卷积核效果 | 2024年最新论文

💡💡💡本文独家改进:大的卷积核设计成为使卷积神经网络(CNNs)再次强大的理想解决方案,Shift-ConvNets稀疏/移位操作让小卷积核也能达到大卷积核效果,创新十足实现涨点,助力YOLOv8 💡💡💡在多个私有数据集和公开数据集VisDrone2019、PASCAL VOC实现涨点 收录…

Elementplus报错 [ElOnlyChild] no valid child node found

报错描述&#xff1a;ElementPlusError: [ElOnlyChild] no valid child node found 问题复现&#xff08;随机例子&#xff09;&#xff1a; <el-popover placement"right" :width"400" trigger"click"><template #reference><e…

Linux介绍和命令使用

目录 目录 一、Linux简介 1.1 主流操作系统 1.2 Linux 发展历史 1.3 Linux系统版本 二、Linux安装 三、Linux 目录结构 四、Linux常用命令 4.1 基础常用命令说明 4.2 Linux 命令使用技巧 4.3 Linux 命令格式 4.4 进阶重点常用命令 4.4.1 拷贝移动命令 4.4.2 打包…

Linux下库函数、静态库与动态库

库函数 什么是库 库是二进制文件, 是源代码文件的另一种表现形式, 是加了密的源代码; 是一些功能相近或者是相似的函数的集合体. 使用库有什么好处 提高代码的可重用性, 而且还可以提高程序的健壮性;可以减少开发者的代码开发量, 缩短开发周期. 库制作完成后, 如何给用户…

【原创】Qt库open62541 MinGW编译

一、前言 为了统一公司的驱动层开发&#xff0c;准备采用OpcUA的方式转发底层数据&#xff0c;而服务器有Windows Server&#xff0c;也有CentOS&#xff0c;因此想用Qt开发一个基于MinGW的OpcUA Server&#xff0c;这样就能跨平台部署。这里记录一下&#xff0c;希望对你也有用…

【人工智能】人工智能 – 引领未来科技的潮流

写在前面 引言红利挑战结论 引言 人工智能是指使计算机系统表现出类似于人类智能的能力。其目标是实现机器具备感知、理解、学习、推理和决策等智能行为。人工智能的发展可以追溯到上世纪50年代&#xff0c;随着计算机技术和算法的不断进步&#xff0c;人工智能得以实现。 今天…

在C++的union中使用std::string(非POD对象)的陷阱

struct和union的对比 union最开始是C语言中的关键字&#xff0c;在嵌入式中比较常见&#xff0c;由于嵌入式内存比较稀缺&#xff0c;所以常用union用来节约空间&#xff0c;在其他需要节省内存的地方也可以用到这个关键字&#xff0c;写一个简单程序来说明union的用途 struc…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Stepper组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Stepper组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Stepper组件 鸿蒙&#xff08;HarmonyOS&#xff09;仅能包含子组件StepperIte…

SpringBoot和SpringMVC

目录 一、springboot项目 &#xff08;1&#xff09;创建springboot项目 &#xff08;2&#xff09;目录介绍 &#xff08;3&#xff09;项目启动 &#xff08;4&#xff09;运行一个程序 &#xff08;5&#xff09;通过其他方式创建和运行springboot项目 二、SpringMVC…

java学习06---方法

一 方法 方法&#xff08;method&#xff09;是程序中最小的执行单元 注意&#xff1a; 方法必须先创建才可以使用&#xff0c;该过程成为方法定义 方法创建后并不是直接可以运行的&#xff0c;需要手动使用后&#xff0c;才执行&#xff0c;该过程成为方法调用 二 方法的…