每天学点儿Python(5) -- 序列索引和切片

news/2024/11/17 5:28:43/

Python中,序列是指一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。它类似于C/C++中的数组或字符串,但又比数组或字符串强大很多

序列类型包括字符串、列表、元组、集合和字典

序列的索引

序列的索引包括正索引和负索引

下图为正索引,顺序为从左向右,下标从0开始,依次为0,1,2……

下图为负索引,顺序为从右向左,下标从-1开始,依次为-1,-2,-3……

不论从正索引还是负索引,都能通过下标直接增删改查对应的元素

例如

s='HelloWorld'print(s[1]) #直接输出下标为1的值for i in s:print(i, end=' ') #按顺序输出序列中的值,并以空格隔开

输出结果为

序列的切片

序列的切片其实是同时访问序列中多个元素的方法,其语法结构如下

其中:start不写时默认从序列最左侧(0或-n)开始,end不写默认到序列最右侧,且包含末尾元素,step不写默认为1

例如

s='HelloWorld'print(s[0:5:2])    #从下标0开始,到下标4结束,每隔2个取一个元素
print(s[1:3]) #不写步长(step),则默认为1,等同写print(s[1:3:])
print(s[:3]) #不写start,则默认从0开始,等同写print(s[:3:])
print(s[1:])    #不写end,则默认到序列尾,且包含末尾元素
print(s[1::2])    #不写end,默认到序列尾,且包含末尾元素
print(s[:-1:])    #因为end为-1,所以start默认从最右侧(即-10),不包含-1,步长为1
print(s[-8::])    #因为start为-8,所以end默认为最右侧(即-1),且包含-1,步长为1

输出结果如下

序列相关操作

相关操作如下表所示

例如

s1='Hello'
s2='World's=s1+s2    #序列元素可以直接相加print(s)
print(len(s))    #打印序列s的元素个数
print(max(s))
print(min(s))if 'el' in s:    #判断是否是序列的元素,是区分大小写的print('el in s')if 'hello' not in s:    # hello 和 Hello不相等,判断为Trueprint('区分大小写')print(s.index('l'))    # l 在s序列中第一次出现的位置
print(s.count('l'))    # l 在序列s中出现的次数
#print(s.index('v'))    #运行报错,因为 v 在序列中不存在

执行结果如下


http://www.ppmy.cn/news/1415377.html

相关文章

专科学习嵌入式合适吗?

专科学习嵌入式是完全合适的,但确实需要注意一些因素以确保你的学习之路更加顺利。我这里有一套嵌入式入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习嵌入式,不妨点个关注,给个评论222,私信2…

【图论】Dijkstra单源最短路径-朴素方法-简单模板(迪杰斯特拉算法)

Dijkstra单源最短路径 问题描述 输入n 表示n个结点,m表示m条边,求编号1的结点到每个点的最短路径 输出从第一个点到第n个点的最短路径 思路 将图g[][]中所有的权值初始化为0x3f表示正无穷 将dist[]中所有的值初始化为0x3f表示从第一个点到所有点的距离…

JavaGUI编程

目录 GUI概念 Swing概念 组件 容器组件 窗口(JFrame) 代码 运行 面板(JPanel) 代码 运行 布局管理器 FlowLayout 代码 运行 BorderLayout 代码 运行 GridLayout 代码 运行 常用组件 标签(JLabel) 代码 运…

React + three.js 3D模型骨骼绑定

系列文章目录 React 使用 three.js 加载 gltf 3D模型 | three.js 入门React three.js 3D模型骨骼绑定React three.js 3D模型面部表情控制React three.js 实现人脸动捕与3D模型表情同步 项目代码(github):https://github.com/couchette/simple-react-three-skele…

uni-app如何生成骨架屏

为什么需要骨架屏:为了缓解用户打开程序时等待接口的焦虑情绪 1.打开微信开发者工具,找到模拟器中的页面信息,选择生成骨架屏 2.将生成的wxml代码复制到vscode,在index的components中新建一个vue文件,只需保留请求接口…

message: 没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 `miniprogra

第一步:修改 project.config.json 文件 ​ "packNpmManually": true "packNpmRelationList": [{"packageJsonPath": "./package.json","miniprogramNpmDistDir": "./"}],​ 第二步:如果你…

探索AI工具导航网站

在现代科技发展迅猛的时代,人工智能(AI)已经成为了各行各业中不可或缺的一部分。了解和利用最新的AI工具对于工作、学习和娱乐都具有重大意义。在这篇博客中,我们将探索一些最新的人工智能工具导航网站,以及其中一款名…

vue对比react18

1.模板语法-——>jsx JSX表达式用{}包裹&#xff0c;vue模板表达式用{{}}包裹&#xff0c;其余一致。 注意:if语句、switch语句、变量声明属于语句&#xff0c;不是表达式&#xff0c;不能出现在{}或{{}}中 <!--vue--> <template><div><p>I have…