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

news2025/2/27 17:08:04

作者: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。

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

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

相关文章

vscode在mac上保存项目文件提示保存失败

原因:可能是由于创建命令时使用“sudo xxxx” 解决办法: 进入访达–》选中简介–》打开锁–》选中自己用户–》输入密码–》结束 注意:由于这个设置只适用于本目录,内部目录还是有权限限制,解决办法点边上的小点–》…

Linux 文件 目录管理

Linux 文件 基本属性 Linux 系统是一种典型的多用户系统,为了保护系统的安全性,不同的用户拥有不同的地位和权限。Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 可以使用命令:ll 或 ls –…

科目二倒车入库

调整座位和后视镜 离合踩到底大腿小腿成130-140 上半身90-100 座椅高度能看到前方全部情况 后视镜调节到能看到后门把手,且后门把手刚好在后视镜上方边缘、离车1/3处。 保持直线: 前进: 车仪表盘中央的原点和地面上的黄线擦边&#xff…

Android 10.0 系统开启和关闭黑白模式主题功能实现

1. 概述 在10.0的rom系统开发定制化中,在系统SystemUI的下拉状态栏中,产品开发功能需求要求添加黑白模式功能开关的功能,就是打开黑白模式,系统颜色就会变成黑白颜色, 关闭黑白模式开关系统就会变成彩色模式,所以就需要了解下系统是怎么设置黑白模式和彩色模式的,然后添…

现代循环神经网络-门控循环单元(GRU)

理论 门控隐状态 门控循环单元与普通的循环神经网络之间的关键区别在于: 前者支持隐状态的门控。 这意味着模型有专门的机制来确定应该何时更新隐状态, 以及应该何时重置隐状态。 这些机制是可学习的,并且能够解决了上面列出的问题。 例如&…

WPF 控件专题 RadioButton样式一

RadioButton样式示例 Style样式修改如下&#xff1a;通过改下RadioButton的ControlTemplate&#xff0c;修改控件所呈现的外观形状和颜色&#xff1b;通过IsChecked属性触发器样式变化。 <UserControl.Resources><Style x:Key"defaultRadioStyle" TargetT…

Ubuntu中安装Anaconda 如何将 路径导入为全局变量

第一步&#xff1a;将你的anaconda 路径复制下来&#xff0c;在终端输入对应路径。 echo export PATH"/home/你的用户名/anaconda3/bin:$PATH" >> ~/.bashrc 第二步&#xff1a;在终端输入下面命令或者重启系统。 source ~/.bashrc 在对应的anaconda安装目…

RocketMQ 发送事务消息

文章目录 事务的相关理论事务ACID特性CAP 理论BASE 理论 事务消息应用场景MQ 事务消息处理处理逻辑 RocketMQ 事务消息处理流程官网事务消息流程图 rocketmq-client-java 示例&#xff08;gRPC 协议&#xff09;创建事务主题生产者消费者 rocketmq-client 示例&#xff08;Remo…

pycharm中恢复原始界面布局_常用快捷键_常用设置

文章目录 1 恢复默认布局1 .1直接点击file→Manage IDE Settings→Restore Default Settings&#xff08;如下图所示&#xff09;&#xff1a;1.2 直接点击Restore and Restart&#xff0c; 然后Pycharm就会自动重启&#xff0c;重启之后的界面就是最原始的界面了 2 改变主题2.…

(NDK编译)详解使用Android.mk编译的C/C++程序过程

想要在Android设备上运行C/C程序可执行文件&#xff0c;可采用一个方法就是使用NDK编译&#xff0c;很多时候要比gcc编译更适合&#xff0c;这里我采用的是imx6q开发板上面装载了自己编写的Android6.0.1镜像&#xff0c;在Ubuntu64位系统上采用NDK编译。 目录 1.准备文件 2.…

任意文件的上传和下载

1.任意文件下载&#xff08;高危&#xff09; 定义 一些网站由于业务需求&#xff0c;往往需要提供文件查看或文件下载功能&#xff0c;但若对用户查看或下载的文件不做限制&#xff0c;则恶意用户就能够查看或下载任意敏感文件&#xff0c;这就是文件查看与下载漏洞。 可以下载…

BCC介绍

本文参考以下博文&#xff1a; bcc/ebpf使用介绍一文看懂eBPF、eBPF的使用&#xff08;超详细&#xff09; ebpf之bcc程序入门 特此致谢&#xff01; BCC&#xff08;有时也写作bcc&#xff09;的全称是BPF Compiler Collection&#xff0c;即BPF编译器集合。BCC是一个开源项…

QT实现钟表

1、 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QPaintEvent> //绘制事件类 #include <QDebug> //信息调试类 #include <QPainter> //画家类 #include <QTimerEve…

vue3+vite3项目打包优化

vue3vite3项目打包优化 1、前言2、视图分析工具rollup-plugin-visualizer3、路由懒加载4、第三方库CDN引入5、使用 gzip 压缩6、按需引入第三方库7、使用 Tree Shaking8、剔除console和debugger9、分包策略10、图片压缩 1、前言 Vue项目开发完毕后&#xff0c;对项目进行打包发…

数据预处理方式合集

删除空行 #del all None value data_all.dropna(axis1, howall, inplaceTrue) 删除空列 #del all None value data_all.dropna(axis0, howall, inplaceTrue) 缺失值处理 观测缺失值 观测数据缺失值有一个比较好用的工具包——missingno&#xff0c;直接传入DataFrame&…

windows 查看端口被占用

1. 使用netstat -ano | findstr 8181 命令查看被占用的端口所在的pid 2. 查看是被哪个应用占用tasklist|findstr "pid" 3.杀死他 taskkill -pid 19200 -f

30.链表练习题(1)(王道2023数据结构2.3.7节1-15题)

【前面使用的所有链表的定义在第29节】 试题1&#xff1a; 设计一个递归算法&#xff0c;删除不带头结点的单链表L中所有值为x的结点。 首先来看非递归算法&#xff0c;暴力遍历&#xff1a; int Del(LinkList &L,ElemType x){ //此函数实现删除链表中为x的元素LNode *…

详细介绍下VLAN隔离与VLAN之间互联

什么VLAN&#xff1f; VLAN代表虚拟局域网&#xff08;Virtual Local Area Network&#xff09;&#xff0c;它是一种在物理网络基础上创建逻辑上独立的虚拟网络的技术。VLAN允许将一个局域网划分为多个虚拟的逻辑网络&#xff0c;这些虚拟网络在逻辑上相互隔离&#xff0c;就…

2023年项目管理工具使用趋势分析及预测

随着技术的不断进步以及工作和领导态度的演变&#xff0c;各个行业都在经历着深刻的变革。项目管理领域同样如此&#xff0c;团队项目的技术和人员管理风格及策略正在不断地调整与优化&#xff0c;以适应新冠疫情后所呈现出的新的工作场所格局。在此背景下&#xff0c;以下是我…

win部署CRM

win部署crm&#xff09; 1.phpstudy2.composer3.代码4.其他配置 周末锴哥让我帮他部署了一个CRM&#xff0c;写个教程&#xff0c;方便之后他用。锴哥用的是 NxCrm&#xff0c;先把代码下下来。 1.phpstudy 1.首先是下载小皮面板&#xff0c;配置php的环境。这里面下载了php8…