Python数据容器——列表、元组、字符串、集合、字典

2023-09-20 19:21:10

作者:Insist--

个人主页:insist--个人主页

本文专栏:Python专栏

专栏介绍:本专栏为免费专栏,并且会持续更新python基础知识,欢迎各位订阅关注。

目录

一、了解数据容器

1. 为什么需要数据容器?

2. 数据容器是什么?

二、数据容器—列表(list)

1. 列表的定义

2. 列表的特点

3. 例题

三、数据容器—元组(tuple)

1. 元组的定义

2. 元组的特点

3. 例题

三、数据容器—字符串(str)

1. 字符串的定义

2. 字符串的特点

四、数据容器—集合(set)

1. 集合的定义

2. 集合的特点

3. 例题

五、数据容器—字典(dict)

1. 字典的定义

2. 字典的特点

3. 例题


前言

数据容器在Python中起着至关重要的作用,本文将讲解Python的数据容器,其中包括列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)。

一、了解数据容器

1. 为什么需要数据容器?

假设你是一位老师,你现在需要用程序记录班上3名学生的信息,你需要怎么做呢?

可能有人会说,可以直接定义3个字符串变量,如下代码:

name1 = "学生1"
name2 = "学生2"
name3 = "学生3"

这种方法虽然可以满足我们的需求,但是写起来很麻烦,这里只有3名学生的信息,那要是有1000个呢?难道我们要定义1000个变量吗?这显然是不现实的。那有什么办法能解决此问题吗?当然有,这就要谈起我们数据容器了,比如我们定义一个列表(list)来存储,如下代码:

my_list = ["学生1","学生2","学生3"]

可以看到我们只用了一个变量就可以接收多份数据,通过以上文章,可以总结出Python数据容器具有组织数据的作用,这也是我们需要数据容器的原因。

2. 数据容器是什么?

通过上面的文章,大家对数据容器已经有所了解了,现在我们来详细的说一说数据容器是什么?

数据容器就是一种可以存储多份数据的数据类型,数据容器内的数据被称为元素,元素可以是任意数据类型(字符串、整数、布尔等),数据容器分为5类,分别是:列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict),下面我们会分别来讲解这5种数据容器。

二、数据容器—列表(list)

列表的相关操作可以参考专栏中的其他文章

上面说到了用列表(list)来存储1000名学生的数据,这种方法比定义1000个变量要简单的多,列表 是数据容器中的一类,下面我们来详细的讲解一下:

1. 列表的定义

列表可以存储多个元素,并且类型不受限制,定义一个列表我们可以使用中括号,元素之间使用逗号隔开,如下代码:

list_name = [element1, element2, ...]

代码中的 list_name 是列表的名称,element1, element2 是列表中存储的数据,被称为元素。

我们还可以定义空列表,比如:

# 定义空列表的 第一种 方法
empty_list = []
# 定义空列表的 第二种 方法
empty_list = list()

2. 列表的特点

  • 可存储多个数据并且支持存储多种类型
  • 数据是有序存储并且允许数据重复
  • 可以修改内容(修改、删除等操作)

3. 例题

看完以上的演示,你会定义列表了吗?让我们来看一个非常简单的例题:

例题:定义一个列表,列表内存储("张三",666,True)这三个数据,并将它打印出来

解答:

# 定义一个列表,列表内存储着("张三",666,True)
list_name = ["张三",666,True]
# 使用 print 将列表打印出来
print(list_name)

输出结果:

7453ef640fc34d8086baf94f228f212f.png

三、数据容器—元组(tuple)

列表的相关操作可以参考专栏中的其他文章

1. 元组的定义

通过列表的特点中得知列表是支持修改的,那如果我们存储的数据不想被修改要怎么办呢?很简单,使用元组来存储即可。

在Python中,元组是一种不可变的序列类型。简单得很说就是元组不支持修改。定义一个元组可以使用圆括号,元素之间用逗号分开。如下代码:

my_tuple = (666, 'ABC', 9.2)

同样,my_tuple 是元组的名称,666, 'ABC', 9.2 是元组中存储的数据。

注意:如果在定义元组时没写变量名,Python就会创建一个匿名元组。匿名元组主要用于一次性使用。

2. 元组的特点

  • 可存储多个数据并且支持存储多种类型
  • 数据是有序存储并且允许数据重复
  • 支持循环,不支持数据得修改

3. 例题

同样,我们来练习一下定义元组,如下例题;

例题:定义一个元组,并在元组内存储(6,"insist",1.1)并将其打印出来,还可以试着存储相同元素,看看会发生什么?

解答:

# 定义一个元组,元组内存储着(6,"insist",1.1)
tuple1 = (6,"insist",1.1)
# 使用 print 将元组的内容打印出来
print(tuple1)

输出结果:

c7f8e48507cc411fbddb96fb00b4ad22.png

三、数据容器—字符串(str)

字符串的相关操作在后续会发布在此专栏

1. 字符串的定义

在Python中,字符被单引号,双引号引起来的形式,称之为字符串。定义一个字符串如下代码:

# 双引号定义
str1 = "insist"
# 单引号定义
str2 = 'insist'
# 三引号定义
str3 = '''
insist
'''

2. 字符串的特点

  • 与上不同,字符串只支持存储字符串类型
  • 与元组相同,字符串也是不可修改的
  • 有序存储并且允许数据重复
  • 支持循环

四、数据容器—集合(set)

集合的相关操作在后续会发布在此专栏

1. 集合的定义

上面已经讲解了三个数据容器了(列表、元组、字符串),这三个数据容器内的数据都是支持重复的,如果我们需要对数据做去重处理,那么这三个用着就不是很方便了,在Python中,集合是不允许数据重复的(相当于自带去重功能),所以我们来学习一下集合。我们可以通过在{}中写上元素来创建一个集合(元素之间使用逗号隔开),如下代码:

set1 = {1,2,3,4,5}

2. 集合的特点

  • 可存储多个数据并且可以存储多种类型
  • 数据是无序的并且不允许数据重复
  • 只支持for循环

3. 例题

我们再来练习一下定义集合,如下例题:

例题:定义一个集合,并在集合内存储(1,1,1,2,2,2,3,3,3)并将其打印出来,看看会发生什么?

解答:

# 定义一个集合,集合内存储着(1,1,1,2,2,2,3,3,3)
set1 = {1,1,1,2,2,2,3,3,3}
# 使用 print 将集合的内容打印出来
print(set1)

输出结果:

1debf05a7cd346b99af7bd0dcbdc1a0b.png

可以看到,集合已对数据进行去重。

五、数据容器—字典(dict)

字典的相关操作在后续会发布在此专栏

1. 字典的定义

00ed051ca201414c90e0698287e9ba45.webp

我们生活中的字典可以通过字去查询到字的含义,Python中的字典和生活中的字典十分相似,生活中的字典是通过字去查询字的含义,Python中的字典是通过Key去找到对应的Value,我们先来定义一个字典,定义字典与集合一样,同样使用{},但字典内部存储的时一对一对的键值对(key:value,就像下面代码中的张三:88)如下代码:

dict1 = {'张三':88,
         '李四':18
}

如上代码,李四是姓名,88是它的分数,我们可以通过输入它的姓名(key)找到对应的value,如下代码:

print(dict1["张三"])

我们可以通过如上方法通过key找到对应的value。

2. 字典的特点

  • 可存储多个数据并且可以存储多种类型
  • 数据以键值对存储
  • 键值对中的key不可重复
  • 可以修改并且只支持for循环

3. 例题

我们再来练习一下字典的相关知识,如下例题:

例题:定义一个字典,字典内存储着3名学生的姓名和分数,定义完成后我们通过姓名找到对应的分数并打印出来

解答:

dict1 = {'张三':88,
         '李四':18,
         '王五':2
}

print(dict1["王五"])

输出结果:

可以看到已经通过key找到了对应的value。

更多推荐

【C语言】字符串函数

文章目录前言1.strcat2.strncpy3.strncat4.strncmp5.strstr6.strtok7.strerror8.strcat的模拟实现9.strstr的模拟实现总结添加链接描述前言大家好呀,今天给大家分享一下字符函数和字符串函数C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类

可转债实战与案例分析——成功的和失败的可转债投资案例、教训与经验分享

实战与案例分析——投资案例研究股票量化程序化自动交易接口一、成功的可转债投资案例成功的可转债投资案例提供了有价值的经验教训,以下是一个典型的成功案例:案例:投资者B的成功可转债投资投资者B是一位懂得风险管理的投资者,他在某家知名科技公司发行的可转债上发现了投资机会。以下是他的投资故事:投资背景:投资者B注意到该科技公司

大气化学在线耦合模式WRF/Chem

查看原文:区域气象-大气化学在线耦合模式(WRF/Chem)在大气环境领域实践随着我国经济快速发展,我国面临着日益严重的大气污染问题。近年来,严重的大气污染问题已经明显影响国计民生,引起政府、学界和人们越来越多的关注。大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果,同时气象因素是控制大气污染的关键自然

【自然语言处理】【大模型】RWKV:基于RNN的LLM

相关博客【自然语言处理】【大模型】RWKV:基于RNN的LLM【自然语言处理】【大模型】CodeGen:一个用于多轮程序合成的代码大语言模型【自然语言处理】【大模型】CodeGeeX:用于代码生成的多语言预训练模型【自然语言处理】【大模型】LaMDA:用于对话应用程序的语言模型【自然语言处理】【大模型】DeepMind

分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)

目录可靠消息最终一致性分布式事务实现_RocketMQ事务消息可靠消息最终一致性分布式事务实战_案列业务介绍数据库表设计可靠消息最终一致性分布式事务实战_Docker安装RocketMQ部署RocketMQ的管理工具可靠消息最终一致性分布式事务实战_实现订单微服务可靠消息最终一致性分布式事务实战_订单微服务业务层实现可

淘宝分布式文件存储系统( 二 ) -TFS

淘宝分布式文件存储系统(二)->>TFS目录:大文件存储结构哈希链表的结构文件映射原理及对应的API文件映射头文件的定义大文件存储结构:采用块(block)文件的形式对数据进行存储,分成索引块,主块,扩展块。所有的小文件都是存放到主块中的,扩展块用来保存溢出的数据,也就是当我们的主快存储不下的时候,数据就会保存到扩展块

kafka 分布式的情况下,如何保证消息的顺序消费?

目录一、什么是分布式二、kafka介绍三、消息的顺序消费四、如何保证消息的顺序消费一、什么是分布式分布式是指将计算任务分散到多个计算节点上进行并行处理的一种计算模型。在分布式系统中,多台计算机通过网络互联,共同协作完成任务。每个计算节点都可以独立运行,并且可以相互通和协调。这种分布式的架构可以提高计算能力和可靠性,充分

高云FPGA系列教程(8):ARM串口数据接收(中断和轮询方式)

文章目录@[toc]1.GW1NSR-4C串口外设简介2.FPGA配置3.常用函数4.轮询方式接收数据5.中断方式接收数据本文是高云FPGA系列教程的第8篇文章。本篇文章介绍片上ARMCortex-M3硬核处理器串口外设的使用,演示轮询方式和中断方式接收串口数据,并进行回环测试,基于TangNano4K开发板。参考文档

享元模式模式简介

概念:享元模式(Flyweightpattern)是一种结构型设计模式,旨在通过共享对象来减少内存使用和提高性能。它通过将对象的状态分为可共享的内部状态和不可共享的外部状态,来实现对象的共享。内部状态可以被多个对象共享,而外部状态则取决于具体的对象。通过共享内部状态,可以减少系统中相似对象的数量,从而节省内存空间。特点

【论文阅读 09】融合门控自注意力机制的生成对抗网络视频异常检测

2021年中国图象图形学报摘要背景:视频异常行为检测是智能监控技术的研究重点,广泛应用于社会安防领域。当前的挑战之一是如何提高异常检测的准确性,这需要有效地建模视频数据的空间维度和时间维度信息。生成对抗网络(GANs)因其结构优势而被广泛应用于视频异常行为检测。方法:本文提出了一种改进的生成对抗网络方法,用于视频异常行

OpenCV实现的F矩阵+RANSAC原理与实践

1RANSAC筛选1.1大致原理Randomsampleconsensus(RANSAC),即随机抽样一致性,其是一种用于估计模型参数的迭代方法,特别适用于处理包含离群点(outliers)的数据集RANSAC的主要思想是随机采样数据点,用这些采样点拟合一个模型,然后计算其他数据点到这个模型的拟合误差;根据误差和阈值,

热文推荐