零基础学Python(10)— 序列通用操作

news2024/11/28 21:52:35

前言:Hello大家好,我是小哥谈。本节课就带大家认识下Python语言中常见的序列通用操作!~🌈  

     目录

🚀1.索引

🚀2.切片

🚀3.序列加法

🚀4.序列乘法

🚀5.检查某个元素是否是序列的成员

🚀6.计算序列的长度、最大值和最小值

🚀1.索引

序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每一个值(称为元素)都分配一个数字,称为索引位置,通过该索引可以取出相应的值。例如,我们可以把一家酒店看作一个序列,那么酒店里的每个房间都可以看作是这个序列的元素,而房间号就相当于索引,可以通过房间号找到对应的房间。

在Python中,序列结构主要有列表元组集合字典字符串,对于这些序列结构有以下几个通用的操作。其中,集合和字典不支持索引、切片、相加和相乘操作。

序列中的每一个元素都有一个编号,也称为索引。这个索引是从0开始递增的,即下标为0表示第一个元素,下标为1表示第2个元素,以此类推。如下图所示。

Python比较神奇,它的索引可以是负数。这个索引从右向左计数,也就是从最后的一个元素开始计数,即最后一个元素的索引值是-1,倒数第二个元素的索引值为-2,以此类推。如下图所示。

注意:在采用负数作为索引值时,是从-1开始的,而不是从0开始的,即最后一个元素的下标为-1,这是为了防止与第一个元素重合。

通过索引可以访问序列中的任何元素。例如,定义一个包括4个元素的列表,要访问它的第3个元素和最后一个元素,可以使用下面的代码:

verse = ["春眠不觉晓","Python不得了","夜来爬数据","好评知多少"]
print(verse[2])         # 输出第3个元素
print(verse[-1])        # 输出最后一个元素

结果如下:

夜来爬数据

好评知多少


🚀2.切片

切片操作是访问序列中元素的另一种方法,它可以访问一定范围内的元素。通过切片操作可以生成一个新的序列。实现切片操作的语法格式如下:

sname[start : end : step]

参数说明:

sname:表示序列的名称。

start:表示切片的开始位置(包括该位置),如果不指定,则默认为0。

end:表示切片的截止位置(不包括该位置),如果不指定,则默认为序列的长度。

step:表示切片的步长,如果省略,则默认为1,当省略该步长时,最后一个冒号也可以省略。

说明:在进行切片操作时,如果指定了步长,那么将按照该步长遍历序列的元素,否则将一个一个遍历序列。

例如,通过切片先获取NBA历史上十大巨星列表中的第2个到第5个元素,再获取第1个、第3个和第5个元素,可以使用下面的代码:

nba = ["迈克尔・乔丹","比尔・拉塞尔","卡里姆・阿布杜尔・贾巴尔","威尔特・张伯伦",
      "埃尔文・约翰逊","科比・布莱恩特","蒂姆・邓肯","勒布朗・詹姆斯","拉里・伯德",
      "沙奎尔・奥尼尔"]
print(nba[1:5])             # 获取第2个到第5个元素
print(nba[0:5:2])           # 获取第1个、第3个和第5个元素

运行上面的代码,将输出以下内容:

['比尔・拉塞尔', '卡里姆・阿布杜尔・贾巴尔', '威尔特・张伯伦', '埃尔文・约翰逊']

['迈克尔・乔丹', '卡里姆・阿布杜尔・贾巴尔', '埃尔文・约翰逊']

说明:如果想要复制整个序列,可以将start和end参数都省略,但是中间的冒号需要保留。例如,nba[:]就表示复制整个名称为nba的序列。


🚀3.序列加法

在Python中,支持两种相同类型的序列相加操作,即将两个序列进行连接,不会去除重复的元素,使用加(+)运算符实现。例如,将两个列表相加,可以使用下面的代码:

nba1 = ["德怀特・霍华德","德维恩・韦德","凯里・欧文","保罗・加索尔"]
nba2 = ["迈克尔・乔丹","比尔・拉塞尔","卡里姆・阿布杜尔・贾巴尔","威尔特・张伯伦",
      "埃尔文・约翰逊","科比・布莱恩特","蒂姆・邓肯","勒布朗・詹姆斯","拉里・伯德",
      "沙奎尔・奥尼尔"]
print(nba1+nba2)

运行上面的代码,将输出以下内容:

['德怀特・霍华德', '德维恩・韦德', '凯里・欧文', '保罗・加索尔', '迈克尔・乔丹', '比尔・拉塞尔', '卡里姆・阿布杜尔・贾巴尔', '威尔特・张伯伦', '埃尔文・约翰逊', '科比・布莱恩特', '蒂姆・邓肯', '勒布朗・詹姆斯', '拉里・伯德', '沙奎尔・奥尼尔']

从上面的输出结果中,可以看出,两个列表被合成一个列表了。

说明:在进行序列相加时,相同类型的序列是指同为列表、元组、集合等,序列中的元素类型可以不同。例如,下面的代码也是正确的:

num = [7,14,21,28,35,42,49,56]
nba = ["德怀特・霍华德","德维恩・韦德","凯里・欧文","保罗・加索尔"]
print(num + nba)

相加后的结果如下:

[7, 14, 21, 28, 35, 42, 49, 56, '德怀特・霍华德', '德维恩・韦德', '凯里・欧文', '保罗・加索尔']

但是不能将列表和元组相加,也不能将列表和字符串相加。

例如,下面的代码就是错误的:

num = [7,14,21,28,35,42,49,56,63]
print(num + "输出的数是7的倍数")

🚀4.序列乘法

在Python中,使用数字n乘以一个序列会生成新的序列。新序列的内容为原来序列被重复n次的结果。例如,下面的代码,将实现把一个序列乘以3生成一个新的序列并输出,从而达到“重要事情说三遍”的效果。

phone = ["华为Mate 10","Vivo X21"]
print(phone * 3)

运行上面的代码,将显示以下内容:

['华为Mate 10', 'Vivo X21', '华为Mate 10', 'Vivo X21', '华为Mate 10', 'Vivo X21']

在进行序列的乘法运算时,还可以实现初始化指定长度列表的功能。例如下面的代码,将创建一个长度为5的列表,列表的每个元素都是None,表示什么都没有。

emptylist = [None]*5
print(emptylist)

运行上面的代码,将显示以下内容:

[None, None, None, None, None]


🚀5.检查某个元素是否是序列的成员

在Python中,可以使用in关键字检查某个元素是否为序列的成员,即检查某个元素是否包含在某个序列中。语法格式如下:

value in sequence

其中,value表示要检查的元素,sequence表示指定的序列。

例如,要检查名称为nba的序列中,是否包含元素“保罗・加索尔”,可以使用下面的代码:

nba = ["德怀特・霍华德","德维恩・韦德","凯里・欧文","保罗・加索尔"]
print("保罗・加索尔" in nba)

运行上面的代码,将显示结果True,表示在序列中存在指定的元素。

另外,在Python中,也可以使用not in关键字实现检查某个元素是否不包含在指定的序列中。例如下面的代码,将显示结果False。

nba = ["德怀特・霍华德","德维恩・韦德","凯里・欧文","保罗・加索尔"]
print("保罗・加索尔"  not in nba)

🚀6.计算序列的长度、最大值和最小值

在Python中,提供了内置函数计算序列的长度、最大值和最小值。分别是:使用len()函数计算序列的长度,即返回序列包含多少个元素;使用max()函数返回序列中的最大元素;使用min()函数返回序列中的最小元素。

例如,定义一个包括9个元素的列表,并通过len()函数计算列表的长度,可以使用下面的代码:

num = [7,14,21,28,35,42,49,56,63]
print("序列num的长度为",len(num))

运行上面的代码,将显示以下结果:

序列num的长度为 9

例如,定义一个包括9个元素的列表,并通过max()函数计算列表的最大元素,可以使用下面的代码:

num = [7,14,21,28,35,42,49,56,63]
print("序列",num,"中的最大值为",max(num))

运行上面的代码,将显示以下结果:

序列 [7, 14, 21, 28, 35, 42, 49, 56, 63] 中的最大值为 63

例如,定义一个包括9个元素的列表,并通过min()函数计算列表的最小元素,可以使用下面的代码:

num = [7,14,21,28,35,42,49,56,63]
print("序列",num,"中的最小值为",min(num))

运行上面的代码,将显示以下结果:

序列 [7, 14, 21, 28, 35, 42, 49, 56, 63] 中的最小值为 7

除了上面介绍的3个内置函数,Python还提供了如下表所示的内置函数。


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

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

相关文章

React18原理: 时间分片技术选择

渲染1w个节点的不同方式 1 &#xff09;案例1&#xff1a;一次渲染1w个节点 <div idroot><div><script type"text/javascript">function randomHexColor() {return "#" ("0000" (Math.random() * 0x1000000 << 0).toS…

在Docker中安装ubuntu镜像并安装Vim,将镜像命名

1、运行环境&#xff0c;腾讯云Ubuntu Server 22.04 LTS 64bit。默认用户名ubuntu&#xff0c;密码自己设置的啥写啥呗。 2、在docker中安装。 sudo docker pull ubuntu 3、查看docker中的镜像。 sudo docker images 4、 以交互模式进入容器。 sudo docker run -it ubuntu…

幻兽帕鲁服务器配置参数说明(Palworld官方汉化)

创建幻兽帕鲁服务器配置参数说明&#xff0c;Palworld服务器配置参数与解释&#xff0c;阿腾云atengyun.com分享&#xff1a; 自建幻兽帕鲁服务器教程&#xff1a; 阿里云教程 https://t.aliyun.com/U/bLynLC腾讯云教程 https://curl.qcloud.com/oRMoSucP 幻兽帕鲁服务器 幻…

Git中Idea操作git及Git Flow

目录 一、Idea中使用Git 1.idea配置Git和Gitee 2.实践操作 1.将本地项目推送到远程 2.从远程库克隆项目到本地 二、Git Flow 1.什么是Git Flow 2.工作流程 3.实践操作 一、Idea中使用Git 1.idea配置Git和Gitee 第一步&#xff1a;设置git.exe的安装路径 在设置中的…

预处理详解(上)

1. 预定义符号 C语言设置了一些预定义符号&#xff0c;可以直接使用&#xff0c;预定义符号也是在预处理期间处理的。 __FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__ //文件被编译的时间 __STDC__ //如果编译器遵循ANSIC&…

Linux--目录结构

目录 一、Linux的目录结构二、常用的目录介绍 一、Linux的目录结构 Linux的目录结构是一个树型结构。 Windos 系统可以拥有多个盘符&#xff0c;如C盘&#xff0c;D盘,E盘。 Linux 木有盘符这个概念&#xff0c;只有一个根目录 /&#xff08;相当于文件夹&#xff09;&#xf…

掌握C语言文件操作:从入门到精通的完整指南!

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C语言学习 贝蒂的主页&#xff1a;Betty‘s blog 1. 什么是文件 文件其实是指一组相关数据的有序集合。这个数据集有一个名称&a…

MPLAB V8.92 printf

Compile error “A heap is required, but has not been specified” Set printf function #if 0 //for UART1 int fputc(int ch, FILE *f) { IFS1bits.U2TXIF 0; // if (runConfig.printOn 1) { // usart_data_transmit(USART0, (uint8_t)ch); U2TXREG ch; // while (RESE…

二分查找算法及其简单应用(C语言实现)

目录 二分查找算法介绍 二分查找算法的简单应用 二分查找算法介绍 二分查找算法&#xff0c;指在一组有序的数组内查找数值&#xff0c;查找的数值与查找范围内的中间数值进行比较&#xff0c;如果比中间数值小&#xff0c;则在原范围内的左侧范围内重复与该范围内的中间数值…

RK3568笔记十四:yolov8pose部署

若该文为原创文章&#xff0c;转载请注明原文出处。 本篇参考山水无移大佬文章&#xff0c;并成功部署了yolov8pose在RK3568板子上&#xff0c;这里记录下全过程。 在此特感谢所有分享的大佬&#xff0c;底部附大佬的链接。 一、环境 1、平台&#xff1a;rk3568 2、开发板: …

微信小程序 民宿预订租赁系统uniApp

通过山青水磨APP办理租房相关业务&#xff0c;线上解决预定、退订的业务&#xff0c;旅客在使用时更加灵活&#xff0c;实现了快速找房&#xff0c;在线沟通、便捷租赁等操作&#xff0c;除此以外&#xff0c;还能帮助旅客获取周边资讯、当地特色活动服务&#xff0c;提升旅客的…

C++,stl,函数对象,谓词,内建函数对象

目录 1.函数对象使用 2.谓词 1.一元谓词 2.二元谓词 3.内建函数对象 1.算术仿函数 2.关系仿函数 3.逻辑仿函数 1.函数对象使用 #include<bits/stdc.h> using namespace std;class add { public:int operator()(int v1,int v2){return v1 v2;} };class print { p…

origin技巧

origin技巧 1.去掉白边2.曲线平滑3.合并多层图例3.图例换方向 1.去掉白边 ctrlu 2.曲线平滑 3.合并多层图例 3.图例换方向 图例右键 “图例” 水平排布修改图例字&#xff1a;双击图例修改 https://blog.csdn.net/m0_47746156/article/details/121295151 https://blog.csdn.…

【网站项目】023实验室耗材管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

BUGKU-WEB GET

题目描述 没有提示&#xff0c;就一个get&#xff0c;启动场景看看&#xff1a; 解题思路 显然是PHP语言解读分析代码吧写出你的payload 相关工具 略 解题步骤 进入场景分析代码 $what$_GET[what]; echo $what; if($whatflag) echo flag{****};前两句&#xff1a;使用get…

《区块链公链数据分析简易速速上手小册》第3章:区块链数据结构(2024 最新版)

文章目录 3.1 区块和交易的结构3.1.1 基础知识3.1.2 重点案例&#xff1a;构建简单的区块链3.1.3 拓展案例 1&#xff1a;验证交易签名生成密钥对签名交易验证签名完整的交易签名与验证演示 3.1.4 拓展案例 2&#xff1a;监听和解析区块链事件代币合约示例&#xff08;Solidity…

HarmonyOS 通过getInspectorByKey获取指定元素高宽等属性

例如 这里 我们有这样一个组件 Entry Component struct Dom {build() {Column() {Row() {Circle({ width: 200, height: 200 }).fill(#20101010)}.id(ES)}.width(100%).height(100%)} }这里 我们就写了个很基本的组件结构 然后 我们写了个 Circle 组件 定义了宽高 然后 如果我…

消息中间件面试篇

目录 消息中间件 RabbitMQ 消息不丢失 生产者确认机制 消息持久化 交换机持久化 队列持久化 消息持久化 消费者确认 消息重复消费 出现的场景 解决方案 每条消息设置一个唯一的标识id 幂等方案&#xff1a;【 分布式锁、数据库锁&#xff08;悲观锁、乐观锁&#…

VMware虚拟机安装openEuler系统(二)(2024)

下面我们进行openEuler系统的一些简单配置。 1. 开启openEuler系统 在VMware Workstation Pro虚拟机软件中找到安装好的openEuler操作系统虚拟机并开启。 等待开启。 2. 安装配置 进入后选择第一个“Install openEuler 20.03-LTS”。 3. 选择系统语言 为虚拟机设置系统语言…

【lesson53】线程控制

文章目录 线程控制 线程控制 线程创建 代码&#xff1a; 运行代码&#xff1a; 强调一点&#xff0c;线程和进程不一样&#xff0c;进程有父进程的概念&#xff0c;但在线程组里面&#xff0c;所有的线程都是对等关系。 错误检查: 传统的一些函数是&#xff0c;成功返回0&…