【Python】组合数据类型:序列,列表,元组,字典,集合

在这里插入图片描述


个人主页:【😊个人主页】
系列专栏:【❤️Python】


文章目录

  • 前言
  • 组合数据类型
  • 序列类型
    • 序列常见的操作符
    • 列表
      • 列表操作
        • len()
        • append()
        • insert()
        • remove()
        • index()
        • sort()
        • reverse()
        • count()
    • 元组
    • 三种序列类型的区别
  • 集合类型
    • 四种操作符
    • 集合
      • set
      • frozenset
      • 常见的集合类型操作函数
  • 映射类型
    • 字典
      • 字典类型的常用方法
  • 数据类型转换


前言

在上一篇文章中,我们介绍了九种数据类型的前三种,包括了数字,布尔类型,字符串类型,今天我们就来介绍在Python中占有特殊地位的五种组合数据类型:序列,列表,元组,字典,集合。想了解更多Python内容请订阅内容【Python系列教程】
在这里插入图片描述

组合数据类型

组合数据类型能将不同类型的数据组织在一起,实现更复杂的数据表示或数据处理功能。根据数据之间的关系,组合数据类型可以分为三类:序列类型映射类型集合类型。序列类型包括列表、元组和字符串三种。映射类型用键值对表示数据,典型的映射类型有字典。集合类型的数据中元素是无序的,集合中不允许有相同的元素存在。

——集合类型:是一个元素集合,元素之间无序,相同元素在集合中唯一存在。集合(set)
——序列类型:是一个元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他。序列类型的典型代表是字符串(str)、列表(list)、元组(tuple)
——映射类型:是“键-值”数据项的组合,每个元素是一个键值对,表示为(key,value).映射类型的典型代表是字典(dict)

在这里插入图片描述

序列类型

序列类型的元素之间存在先后关系,通过索引来访问,当我们需要访问序列中的某个元素时,要找出其索引,再通过索引寻找元素。

这些序列类型都支持索引和切片操作,可以通过索引访问序列中的元素,也可以通过切片获取序列的子序列。此外,还可以使用内置函数和方法对序列进行操作,例如获取序列的长度、查找元素的位置、添加、删除和修改元素等。

序列常见的操作符

操作符描述
x in s如果x是s的元素,返回True,否则返回Flase
x not in s如果x不是s的元素,返回True,否则返回Flase
s +t连接s和t
s n或ns将序列s复制n次
s[i]索引,返回序列的第i个元素
s[i:j]切片,返回序列s到第i到第j个元素的子序列(不包含第j个元素)
s[i:j:k]步骤切片,返回包括序列s到第i到第j个元素以k为步长的子序列
len(s)序列s的元素个数(长度)
min(s)序列s中的最小元素
max(s)序列s中的最大元素
s.index(x)序列s中第一次出现元素x的位置
s.count(x)序列s中元素x出现的总次数

列表

列表是 Python 中最常用的序列类型,它是由元素组成的可变序列,使用方括号括起来,并用逗号分隔。4

列表中的元素(又称数据项)不需要具有相同的类型。创建列表时,只要把逗号分隔的元素使用方括号括起来即可。列表是可变的,用户可在列表中任意增加元素或删除元素,还可对列表进行遍历、排序、反转等操作。

在这里插入图片描述

list = ['runoob', 786, 2.23, 'john', 70.2]
tinylist = [123, 'xue']
print(list)  # 输出完整列表
print(list[0] ) # 输出列表的第一个元素
print(list[1:3])  # 输出第二个至第三个元素
print(list[2:]) # 输出从第三个开始至列表末尾的所有元素
print (tinylist * 2 ) # 输出列表两次
print (list + tinylist)  # 打印组合的列表

在这里插入图片描述

列表操作

在这里插入图片描述

len()
my_list = [1, 2, 3, 4]
print(len(my_list))  # 输出4
    返回列表的长度
append()
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # 输出[1, 2, 3, 4]
向列表末尾添加元素
insert()
my_list = [1, 2, 3, 4]
my_list.insert(2, 5)
print(my_list)  # 输出[1, 2, 5, 3, 4]
在指定位置插入元素
remove()
my_list = [1, 2, 3, 4]
my_list.remove(3)
print(my_list)  # 输出[1, 2, 4]
移除指定元素
index()
my_list = [1, 2, 3, 4]
print(my_list.index(3))  # 输出2
返回指定元素第一次出现的索引
sort()
my_list = [3, 1, 4, 2]
my_list.sort()
print(my_list)  # 输出[1, 2, 3, 4]
对列表进行排序
reverse()
my_list = [1, 2, 3, 4]
my_list.reverse()
print(my_list)  # 输出[4, 3, 2, 1]
反转列表
count()
my_list = [1, 2, 2, 3, 3, 3]
print(my_list.count(2))  # 输出2
返回指定元素在列表中出现的次数

元组

Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号(),列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用括号隔开即可。元组是序列类型中比较特殊的类型,因为它一旦创建就不能被修改。元组类型在表达固定数据项、函数多返回值、多变量同步赋值、循环遍历等情况下十分有用。Python中元组采用逗号和圆括号(可选)来表示。一个元组可以作为另一个元组的元素,可以采用多级索引获取信息。
元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表

tuple = ('runoob', 786, 2.23, 'john', 70.2)
tinytuple = (123, 'xue')print(tuple) # 输出完整元组
print(tuple[0])  # 输出元组的第一个元素
print(tuple[1:3]) # 输出第二个至第四个(不包含)的元素
print(tuple[2:])  # 输出从第三个开始至列表末尾的所有元素
print(tinytuple * 2)  # 输出元组两次
print(tuple + tinytuple)  # 打印组合的元组

在这里插入图片描述
注:元组不允许更新,而列表是允许更新的

三种序列类型的区别

  • 字符串是由单一字符组成的不可修改的序列类型。
  • 列表是一个可以修改的序列类型,使用相对更加灵活。
  • 元组是一个不可变的序列类型,构建好以后不可以进行任何修改。

字符串是不可变的,而列表和元组是可变的。
字符串和元组一旦创建就不能修改,而列表可以进行修改。
元素的类型可以是任意的,但是元组和字符串的元素类型必须一致。
字符串使用单引号或双引号,列表和元组使用方括号和小括号来定义。

集合类型

四种操作符

Python 中的集合与数学中集合的概念是一致的,因此,两个集合可以做数学意义上的交集并集、差集计算等

操作符的运算描述
S-T返回一个新集合包括在集合S中但不在集合T中的元素
S&T返回一个新集合包括同时在集合S和集合T中的元素
S^T返回一个新集合包括集合S和集合T中的非共同元素
ST返回一个新集合包括集合S和集合T中的所有元素

集合

在Python中,集合类型是一种可变的、无重复元素的无序集合。Python提供了两种集合类型:set和frozenset。

set

set是一个可变集合,可以通过添加、删除元素来修改集合。创建set可以通过花括号{}或者set()函数来实现。

s = {1, 2, 3}  # 创建一个集合包含元素1、2、3

frozenset

rozenset是一个不可变集合,创建后不能再添加或删除元素。创建frozenset可以使用frozenset()函数。

fs = frozenset([4, 5, 6])  # 创建一个不可变集合包含元素4、5、6

常见的集合类型操作函数

S.add(x):如果数据域x不在集合S中,将x增加到s
S.remove(x):如果x在集合S中,移动该元素;不在产生KeyError异常
S.clear():移除S中所有数据域
len(S):返回集合S元素个数
x in S:如果x是S的元素,返回True,否则返回Flase
x not in S:如果x不是S的元素,返回True,否则返回Flase

映射类型

字典

字典是 Python 中内置的映射类型。映射是通过键值查找一组数据值信息的过程,由 key-value的键值对组成,通过 key 可以找到其映射的值 value。

字典可以看作是由键值对构成的列表。在搜索字典时,首先查找键,当查找到键后就可以直接获取该键对应的值。这是一种高效、实用的查找方法。这种数据结构之所以被命名为字典,是因为它的存储和检索过程与真正的字典类似。键类似于字典中的单词,根据字典的组织方式(例如,按字母顺序排列)找到单词(键)非常容易,找到键就能找到相关的值(定义)。但反向的搜索,使用值去搜索键则难以实现。
字典中的值并没有特殊的顺序,它们都存储在一个特定的键(key)里。键可以是数字、字符串以及元组等。此外,字典中的元素(键值对)是无序的。当添加键值对时,Python会自动修改字典的排列顺序,以提高搜索效率,且这种排列方式对用户是隐藏的。

dicts 为字典名,key 为键,value 为值
建立模式:
{<键1>:<值1>, <键2>:<值2>, … , <键n>:<值n>}

dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'runoob', 'code': 6734, 'dept': 'sales'}
print(dict['one'])  # 输出键为'one' 的值
print(dict[2])  # 输出键为 2 的值
print(tinydict)  # 输出完整的字典
print(tinydict.keys()) # 输出所有键
print(tinydict.values())  # 输出所有值

在这里插入图片描述

字典类型的常用方法

在这里插入图片描述

数据类型转换

在这里插入图片描述
来源:菜鸟教程 Python变量类型
在这里插入图片描述

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

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

相关文章

【CSS in Depth 2精译】2.5 无单位的数值与行高

当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高 ✔️2.6 自定义属性2.7 本章小结 2.5 无单位的数值与行高 有些属性允许使用无单位的数值&#xff08;unitless value…

【数据结构与算法】快速排序挖坑法

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《数据结构与算法》 期待您的关注 ​

前端面试题16(跨域问题)

跨域问题源于浏览器的同源策略&#xff08;Same-origin policy&#xff09;&#xff0c;这一策略限制了来自不同源的“写”操作&#xff08;比如更新、删除数据等&#xff09;&#xff0c;同时也限制了读操作。当一个网页尝试请求与自身来源不同的资源时&#xff0c;浏览器会阻…

Python实现ABC人工蜂群优化算法优化随机森林回归模型(RandomForestRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 人工蜂群算法(Artificial Bee Colony, ABC)是由Karaboga于2005年提出的一种新颖的基于群智能的全局优化…

PD虚拟机不能复制Mac的文件怎么回事 PD虚拟机不能复制Mac的文件怎么办 Parallels Desktop怎么用

PD虚拟机不仅能提供跨系统协作的服务&#xff0c;还能进行虚拟机系统与原生系统间的文件共享、文本复制、文件复制等操作&#xff0c;让系统间的资源可以科学利用。但在实际操作过程中&#xff0c;PD虚拟机不能复制Mac的文件怎么回事&#xff1f;PD虚拟机不能复制Mac的文件怎么…

linux centos7.9 安装mysql5.7;root设置客户端登录、配置并发、表名大小写敏感等

查看centos版本 cat /etc/centos-releasecentos版本为7.9 查看是否已安装mariadb,安装了需要先删除 1.查看是否安装了mariadb和mysql,安装了需要先删除 mariadb是mysql的一个分支,但要安装mysql需要删除它 执行rpm -qa|grep mariadb,查看mariadb情况 查找到有就删除 执行…

Day59 动态规划part12

LC115不同的子序列&#xff08;未掌握&#xff09; 递推公式与LC392类似&#xff0c;但是初始化略有不同 LC392的dp数组含义为相同字符个数而本体的dp数组含义为出现的次数&#xff0c;因此dp[i][0]1 两种情况 s[i-1]t[j-1] dp[i][j] dp[i-1][j-1]dp[i][j] dp[i-1][j] s[…

Kubernetes集群性能测试之kubemark集群搭建

Kubernetes集群性能测试之kubemark集群搭建 Kubemark是K8s官方提供的一个对K8s集群进行性能测试的工具。它可以模拟出一个K8s cluster&#xff08;Kubemark cluster&#xff09;&#xff0c;不受资源限制&#xff0c;从而能够测试的集群规模比真实集群大的多。这个cluster中ma…

运维锅总详解系统启动流程

本文详细介绍Linux及Windows系统启动流程&#xff0c;并分析了它们启动流程的异同以及造成这种异同的原因。希望本文对您理解系统的基本启动流程有所帮助&#xff01; 一、Linux系统启动流程 Linux 系统的启动流程可以分为几个主要阶段&#xff0c;从电源开启到用户登录。每个…

有一个日期(Date)类的对象和一个时间(Time)类的对象,均已指定了内容,要求一次输出其中的日期和时间

可以使用友元成员函数。在本例中除了介绍有关友元成员函数的简单应用外&#xff0c;还将用到类的提前引用声明&#xff0c;请读者注意。编写程序&#xff1a; 运行结果&#xff1a; 程序分析&#xff1a; 在一般情况下&#xff0c;两个不同的类是互不相干的。display函…

关于Java异常机制及finally关键字的详解

异常机制(Exception) 软件程序在运行过程中&#xff0c;非常可能遇到异常问题。常见的异常&#xff1a; 1、用户输入错误 2、设备错误 3、硬件问题&#xff0c;例如打印机关掉、服务器问题 4、物理限制&#xff1a;磁盘满了 Java是采用面向对象的方式来处理异常的。 处理过程…

基于Java的水果商品销售网站

1 水果商品销售网站概述 1.1 课题简介 随着电子商务在当今社会的迅猛发展&#xff0c;水果在线销售已逐渐演变为一种极为便捷的购物方式&#xff0c;日益受到人们的青睐。本系统的设计初衷便是构建一个功能完备、用户体验友好的水果销售平台&#xff0c;致力于为用户提供优质、…

【植物大战僵尸杂交版】获取+存档插件

文章目录 一、还记得《植物大战僵尸》吗&#xff1f;二、在哪下载&#xff0c;怎么安装&#xff1f;三、杂交版如何进行存档功能概述 一、还记得《植物大战僵尸》吗&#xff1f; 最近&#xff0c;一款曾经在15年前风靡一时的经典游戏《植物大战僵尸》似乎迎来了它的"文艺复…

渐开线花键测量学习笔记分享

大家好&#xff0c;继续渐开线花键的相关内容&#xff0c;本期是渐开线花键测量相关的学习笔记分享&#xff1a; 花键检测项目有花键大径和小径检验&#xff1b;内花键齿槽宽和外花键齿厚&#xff0c;以及渐开线终止圆 和起始圆直径检测&#xff1b;齿距累计误差 、齿形误差 、…

排序算法简述(第八jiang)

目录 排序 选择排序 O(n2) 不稳定&#xff1a;48429 归并排序 O(n log n) 稳定 插入排序 O(n2) 堆排序 O(n log n) 希尔排序 O(n log2 n) 图书馆排序 O(n log n) 冒泡排序 O(n2) 优化&#xff1a; 基数排序 O(n k) 快速排序 O(n log n)【分治】 不稳定 桶排序 O(n…

Mysql-常用函数及其用法总结

1、字符串函数 测试用例如下&#xff1a; 1.1 CONCAT() 将多个字符串连接成一个字符串。 SELECT CONCAT(first_name, , last_name) AS full_name FROM users; -- 期望结果&#xff1a;John Doe, Jane Smith, Michael Johnson 1.2 SUBSTRING() 提取子字符串 SELECT SUBSTR…

STM32-PWR和WDG看门狗

本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. PWR1.1 PWR简介1.2 电源框图1.3 上电复位和掉电复位1.4 可编程电压监测器1.5 低功耗模式1.6 模式选择1.7 睡眠模式1.8 停止模式1.9 待机模式1.10 库函数 2. WDG看门狗2.1 WDG简介2.2 IWDG框图2.3 IWDG键寄存器2.4 …

13 学习总结:指针 · 其一

目录 一、内存和地址 &#xff08;一&#xff09;内存 &#xff08;二&#xff09;内存单元 &#xff08;三&#xff09;地址 &#xff08;四&#xff09;拓展&#xff1a;CPU与内存的联系 二、指针变量和地址 &#xff08;一&#xff09;创建变量的本质 &#xff08;二…

ASRock Creator系列GPU:为AI推理及多GPU系统打造,采用16针电源接口的Radeon RX 7900系列显卡

ASRock 正在筹备推出专为人工智能推理和多GPU系统设计的AMD GPU——Creator系列显卡。这一系列显卡采用双槽位、吹风式设计&#xff0c;并配备16针电源连接器&#xff0c;首发产品包括基于Navi 31架构的AMD Radeon RX 7900XTX和RX 7900 XT型号。这些原属于WS系列的显卡最初在20…

机器学习与现代医疗设备的结合:革新医疗健康的未来

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 随着技术的不断进步&#xff0c;机器学习&#xff08;Machine Learning, ML&#xff09;在现代医疗设备中的应用正在改变着…