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

news2024/11/29 12:44:21

在这里插入图片描述


个人主页:【😊个人主页】
系列专栏:【❤️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.coloradmin.cn/o/1902556.html

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

相关文章

tongweb 部署软航流版签一体化应用示例 提示跨域错误CORS ERROR

目录 问题现象与描述 解决办法 原理解析 什么是CORS 浏览器跨域请求限制 跨域问题解决方法 跨域请求流程 浏览器请求分类解析 http请求方法简介 问题现象与描述 重庆软航科技有限公司提供了一套针对针对word、excel等流式文件转换成PDF版式文件并进行版式文件在线签章…

什么是 DDoS 攻击及如何防护DDOS攻击

自进入互联网时代&#xff0c;网络安全问题就一直困扰着用户&#xff0c;尤其是DDOS攻击&#xff0c;一直威胁着用户的业务安全。而高防IP被广泛用于增强网络防护能力。今天我们就来了解下关于DDOS攻击&#xff0c;以及可以防护DDOS攻击的高防IP该如何正确选择使用。 一、什么是…

Apache Seata分布式事务启用Nacos做配置中心

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 Seata分布式事务启用Nacos做配置中心 Seata分布式事务启用Nacos做配置中心 项目地址 本文作…

matlab 有倾斜的椭圆函数图像绘制

matlab 有倾斜的椭圆函数图像绘制 有倾斜的椭圆函数图像绘制xy交叉项引入斜线负向斜线成分正向斜线成分 x^2 y^2 xy 1 &#xff08;负向&#xff09;绘制结果 x^2 y^2 - xy 1 &#xff08;正向&#xff09;绘制结果 有倾斜的椭圆函数图像绘制 为了确定椭圆的长轴和短轴的…

复现YOLO_ORB_SLAM3_with_pointcloud_map项目记录

文章目录 1.环境问题2.遇到的问题2.1编译问题1 monotonic_clock2.2 associate.py2.3 associate.py问题 3.运行问题 1.环境问题 首先环境大家就按照github上的指定环境安装即可 环境怎么安装网上大把的资源&#xff0c;自己去找。 2.遇到的问题 2.1编译问题1 monotonic_cloc…

STMF4学习笔记RTC(天空星)

前言&#xff1a;本篇笔记参考嘉立创文档&#xff0c;连接放在最后 #RTC相关概念定义 Real-Time Clock 缩写 RTC 翻译 实时时钟&#xff0c;是单片机片内外设的一种&#xff0c;作用于提供准确的时间还有日期&#xff0c;这个外设有独立的电源&#xff0c;当单片机停止供电…

C++之static关键字

文章目录 前提正文多重定义extern关键字使用staticstatic 全局变量(在.cpp文件中定义)static变量存放在哪里static变量可不可以放在.h文件中 static 函数static局部变量static 成员变量static 成员函数 总结参考链接 前提 好吧&#xff0c;八股&#xff0c;我又回来了。这次想…

【wordpress教程】wordpress博客网站添加非法关键词拦截

有的网站经常被恶意搜索&#xff0c;站长们不胜其烦。那我们如何屏蔽恶意搜索关键词呢&#xff1f;下面就随小编一起来解决这个问题吧。 后台设置预览图&#xff1a; 设置教程&#xff1a; 1、把以下代码添加至当前主题的 functions.php 文件中&#xff1a; add_action(admi…

I2C接口+高度集成的电源管理芯片(PMIC)-iML1942

电源管理芯片 - iML1942是一个高度集成的电源管理IC为TFT液晶面板。它具有完整的I2C接口来编程各种参数。该设备包括一个针对AVDD的电流模式升压调节器&#xff0c;一个针对VBK1的同步升压转换器。VGL可选的反相转换器或负电荷泵调节器&#xff0c;VSS1负线性调节器&#xff0c…

基于python的数据分解-趋势-季节性-波动变化

系列文章目录 前言 时间序列数据的分解&#xff0c;一般分为趋势项&#xff0c;季节变化项和随机波动项。可以基于加法或者乘法模型。季节变化呈现出周期变化&#xff0c;因此也叫季节效应(周期&#xff09;。 一、数据分解步骤 &#xff08;1&#xff09;估计时间序列的长期…

相关向量机RVM算法介绍继承sklearn-SVM-API实现回归预测算例

一、相关向量机RVM与支持向量机SVM对比 1、相关向量机&#xff08;RVM&#xff09; ①定义与原理 相关向量机&#xff08;Relevance Vector Machine, RVM&#xff09;是一种基于概率模型的机器学习算法&#xff0c;主要用于分类和回归分析。基于稀疏贝叶斯学习框架&#xff…

杰理科技AD142A语音芯片,语音玩具方案—云信通讯

语音玩具产品市场的需求量比较大&#xff0c;从前简单的发光玩具&#xff0c;到各种动作的电子玩具&#xff0c;再到如今的语音录音灯光动作玩具&#xff0c;可见玩具行业也是在不断地演变。 杰理语音芯片AD142A4的优势主要是支持录音、录变音、语音播放&#xff0c;广泛应用于…

kubernetes集群部署:node节点部署和CRI-O运行时安装(三)

关于CRI-O Kubernetes最初使用Docker作为默认的容器运行时。然而&#xff0c;随着Kubernetes的发展和OCI标准的确立&#xff0c;社区开始寻找更专门化的解决方案&#xff0c;以减少复杂性和提高性能。CRI-O的主要目标是提供一个轻量级的容器运行时&#xff0c;它可以直接运行O…

给我的 IM 系统加上监控两件套:【Prometheus + Grafana】

监控是一个系统必不可少的组成部分&#xff0c;实时&#xff0c;准确的监控&#xff0c;将会大大有助于我们排查问题。而当今微服务系统的话有一个监控组合很火那就是 Prometheus Grafana&#xff0c;嘿你别说 这俩兄弟配合的相当完美&#xff0c;Prometheus负责数据采集&…

手写实现一个ORM框架

手写实现一个ORM框架 什么是ORM框架、ORM框架的作用效果演示框架设计代码细节SqlBuilderSqlExecutorStatementHandlerParameterHandlerResultSetHandler逆序生成实体类 大家好&#xff0c;本人最近写了一个ORM框架&#xff0c;想在这里分享给大家&#xff0c;让大家来学习学习。…

10、matlab中字符、数字、矩阵、字符串和元胞合并为字符串并将字符串以不同格式写入读出excel

1、前言 在 MATLAB 中&#xff0c;可以使用不同的数据类型&#xff08;字符、数字、矩阵、字符串和元胞&#xff09;合并为字符串&#xff0c;然后将字符串以不同格式写入 Excel 文件。 以下是一个示例代码&#xff0c;展示如何将不同数据类型合并为字符串&#xff0c;并以不…

【设计模式】装饰器模式(定义 | 特点 | Demo入门讲解)

文章目录 定义装饰模式的结构 快速入门 | Demo顶层抽象DataSource数据源接⼝具体实现类引入BASE**64**编码装饰器客户端Client 定义 所谓装饰器模式其实就是在原有的功能上做一个增强&#xff01;&#xff01; 换句话说&#xff1a;以前你妈妈揍你的时候用的巴掌&#xff0c;但…

Android 简单快速实现 下弧形刻度尺(滑动事件)

效果图&#xff1a; 直接上代码&#xff1a; package com.my.view;import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Pai…

SQL注入【1】——通用漏洞/SQL注入/mysql跨库/ACCESS偏移

一、知识点: 1、脚本代码与数据库前置知识 2、Access数据库注入-简易&偏移 3、MYSQL数据库注入-简易:权限跨库 二、前置知识: &#xff08;一&#xff09;SQL注入漏洞产生原理分析 SQL注入产生条件&#xff1a;根本条件&#xff1a;可控变量、特定函数。 脚本代码在实现…

一气之下,关闭成都400多人的游戏公司

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 最近&#xff0c;多益网络宣布关闭成都公司&#xff0c;在未来三年内&#xff0c;关闭成都所有的相关公司。原因竟然是输掉了劳动仲裁&#xff0c;赔偿员工38万多&#xff0c;然后一气之下要退出成都&#xff0c;…