python slice

Python中的切片(Slice)操作详解 前言 在python学习开发的过程中,难免会遇到从某个对象中抽取部分值的情况,对这种经常取指定索引的范围的操作,如果你使用循环的话是可以解决的,但是相对更好的方法而言,此操作是相当繁琐和费事的。 python中的 切片操作正是专门用于完成这一操作的便捷有力方法. Python可切片对象的索引方式 Python可切片对象的索引方式包括:正索引和负索引。 如下图所示,以a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例:     ------>从左向右   阅读详情

什麼是切片?

不管是字串、還是List,在Python裡只要是符合"序列"概念的物件,都可以使用"切片"(slice)的方式去存取,至於為什麼叫切片呢? 想像一下字串是一條香腸,你要取其中的一段,就像在切片一樣,你要從頭到尾,還是從頭到中間,又或著中間取一段呢? 這就是所謂的切片的概念,以下讓我們介紹字串切片的使用方法:

語法說明
s[i] 取第i個字元的字串,從0當做第一個開始算
s[i:j] 取從第i個開始,到j的前一個,也就是不包含j
s[i:j:k] 取從第i個開始,到j的前一個,也就是不包含j,但是每k步個才取一個字
我們先從最簡單的介紹起,就是第一個,取其中一個字,Python和其它大部份語言一樣,索引是從0開始算的,所以這語法也就是取從0開始的第i+1個字,但是請注意的一點是,如果你學過其它程式語言,可能知道什麼是字元, 在Python裡沒有所謂的字元,只有長度為1的字串,所以回傳的也是長度為1的字串,而不是字元,除此之外,如果索引是負數的話,代表從右邊數過來的第幾個,例如s = 'abcd',s[-1]就是'd'。

接下來我們看第二個,通常也是最常用的方式,例如字串是s = 'abcd'

  1. s[0:2]  

的結果就是'ab'

  1. s[1:2]  

就是'b',和

  1. s[1]  

的效果一樣,而

  1. s[2:4]  

也就是'cd',除了這樣的規則之外,如果起始為0的話,可以省略0不寫,換言之,省略不寫第一個,就會被當成從0開始,例如

  1. s[0:2]  

可以省略成

  1. s[:2]  

前面的數字被省略了,Python就知道前面是0,而終止的數字如果是字串的長度,也一樣可以省略不寫,換言之終止的數字省略不寫就會被設為字串的長度,例如

  1. s[2:4]  

可以省略為

  1. s[2:]  

除了這些,還有和上面一樣的負數規則,就是負數代表是從右邊數過來的第幾個,例如

  1. s[:-1]  

結果是'abc',而

  1. s[-2:-1]  

 就是'c',效果和

  1. s[-2]  

是一樣的。

最後是第三種形式,規則都和上面一樣,只是加了k步取一個字的規則,例如s = 'abcd'

  1. s[::1]  

的結果是'abcd',因為是從頭到尾的切片,而且隔一步取一個,所以有和沒有是一樣的,但是

  1. s[::2]  

就不一樣了,兩步才取一個字,所以是'ac',而比較複雜的是,步數也有負數的規則,如果步數是負的,表是從i到j以負數前進,例如

  1. s[::-1]  

結果會是dcba,除此之外,對於負的步數而言,起始省略會變成字串的最後一個字元開始,而終止省略的話,會變成字串的第一個字元,因此

  1. s[::-1]  

可以寫成

  1. s[3::-1]  
為什麼不寫

這樣呢?

  1. s[3:0:-1]  

因為終止條件不包括在被取到的字在內,只有省略才能表示,如果寫成這樣會變成'dcb',因為不包括0,但是比0前面的字元如果用負數表示卻又變成了從後 面數過來,因此只能用省略來表示負步數的第一個字元之前當結尾,這個部份有點難懂,但是知道s[::-1]可以將字串反過來就好,因為這個部份比較少用 到。

字串abcd用表格表示:

正數索引 0 1 2 3
負數索引 -4 -3 -2 -1
字串內容 a b c d
s[0:4] 結果是 abcd
取0 取1 取2 取3,不包括4,到3就終止
s[:2] 結果是 ab 取0 取1,不包括2,到1就終止    
s[-2:-1] 結果是 c     -2開始,取-2,不包括-1,所以到-2就終止  
s[::2] 結果是 ac 取0 2步取1字,此步不取 取2 2步取1字,此步不取,不包括4,到3就終止
s[::-1] 結果是dcba
取0,不包括0前面一個,到0終止
取1
取2
負步數省略由-1開始

接下來我們示範字串切片的使用:

  1. # -*- coding: utf-8 -*-  
  2.   
  3. string = u"中文字測試"  
  4.   
  5. # 印出前三個字  
  6. print string[:3]  
  7.   
  8. # 印出中間三個字  
  9. print string[1:4]  
  10.   
  11. # 印出最後一個字  
  12. print string[-1]  
  13.   
  14. # 跳一個字印  
  15. print string[::2]  
  16.   
  17. # 倒過來印  
  18. print string[::-1]  

可改變的序列使用切片

什麼是可改變,什麼是不可改變,在這裡我們還不打算說明,將在後面的章節解釋,在這裡請先記得,字串是不可改變的序列,而List是可改變的序列,以上的方法都可以應用在可改變和不可改變的序列,換言之,你也可以應用上面的方法在List,而不只有在字串上,以下我們介紹針對可改變的序列的切片操作。

語法說明
s[i] = x
取代s中第i個元素為x
s[i:j] = t 取代s的切片內容為t序列的內容
del s[i:j]
從s中刪除切片所含的元素
s[i:j:k] = t 取代s的切片內容成為t序列的內容(t序列的長度必須和切片長度一樣)
del s[i:j:k]
從s中刪除切片中所含的元素
python slice类介绍 在 Python 中,slice是一个内置类,用于表示一个切片对象。切片通常用于从序列(如列表、元组、字符串等)中提取子集,或用于高级索引操作。 阅读详情

相关推荐

重带电粒子的能量歧离(energy straggling)

能量歧离,Bethe-Bloch

G751888629的博客 2298

Python slice(切片)

在Python中,是对序列型对象(如liststringtuple)的一种高级索引方法。普通索引只取出序列中对应的元素,而切片取出序列中对应的元素,这里的范围不是狭义上的连续片段。如果没有缺省的话,表达式应该包含三个参数以及两个冒号,三个参数的意义分别如下:1、start_index:切片的起始位置(),0表示从第一个开始,1表示从第二个开始,以此类推。-1表示从倒数第一个开始,-2表示从倒数第二个开始,以此类推。2、end_index:切片的结束位置(

2895

基于Java+SpringBoot+Vue的中小企业设备管理系统的设计与开发(源码+lw+部署文档+讲解等)

💗博主介绍:✌新人博主,工作经验两年+、专注于Java、小程序技术领域和毕业项目实战✌💗🌟文末获取源码+数据库🌟

2301_76502068的博客 1382

Slice()函数:实用的Python切片小技巧

Python 的 slice() 函数以简洁的语法和强大的功能,为我们处理数据提供了无尽的便利和可能性。从基础的序列元素选取,到灵活多变的参数组合应用,再到实际编程中的各种场景,slice() 都展现出了它独特的魅力和价值。在未来的编程探索中,不妨多加运用 slice() 函数,感受它带来的高效与便捷,让数据处理变得轻松而富有艺术感。我是橙色小博,关注我,一起学习进步。

橙色小博的博客,励志在人工智能领域发光发热! 2435

Dify沙盒容器部署实战:解决config.yaml缺失与系统调用权限问题

本文详细解析了Dify沙盒容器部署中的两大常见问题:config.yaml缺失与系统调用权限限制。通过实战步骤指导如何正确配置卷挂载解决`no such file or directory`错误,并深入讲解如何调整`allowed_syscalls`白名单应对`error: operation not permitted`权限问题,帮助开发者高效完成Dify容器化部署。

gg901的博客 920

C语言专升本编程题

湖南省专升本选拔考试,C语言程序设计内部习题

weixin_45729947的博客 2115

python基础学习3--切片(slice)

python切片

qq_51476492的博客 2726

Claude Code 从入门到精通,通过实战项目穿插 Agent Skills、MCP、Hooks、子代理、插件等十五个知识点

本文介绍了Claude Code的高级使用技巧,通过一个个人简历网站实战项目,详细讲解了15个核心知识点。主要内容包括:三种权限模式(默认/编辑/计划)的使用与切换;历史会话管理(/resume、/rename、/clear命令);会话回滚功能(/rewind);以及危险参数--dangerously-skip-permissions的注意事项。文章还演示了如何通过计划模式拆分代码文件,并强调了在复杂任务中仔细检查规划步骤的重要性。这些技巧能帮助开发者更高效地使用Claude Code完成项目开发。

1787

Python小技巧:切片(slicing)

切片是 Python 中处理序列的一种强大工具。它使你能够轻松地从字符串、列表和元组中提取子部分,简化了很多操作。通过掌握基本和高级的切片技巧,你可以编写更简洁和高效的代码。

李威威wiwi的博客 818

〔重庆理工大学〕大学物理实验--变温霍耳效应及其参数测定

每个老师要求不同,实验报告内容和数据仅供参考。

Pretty Boy Fox的博客 3042

什么是 AIDV(AI 定义汽车):从软件定义到智能决策的范式革命

AI定义汽车(AIDV),是指以人工智能(尤其是大模型、深度学习、强化学习)为核心引擎,以车载AI芯片为算力底座,以“数据闭环”为迭代支撑,重构汽车感知、决策、执行全链路,实现“感知智能化、决策自主化、体验个性化、迭代自动化”的新一代智能汽车发展范式。其核心是让汽车从“执行工具”升级为“具备自主学习与智能决策能力的移动智能终端”,核心价值是“车与人的深度协同”与“复杂场景的自主适配”。

getusushu的博客 95

slice python_Python slice()

slice pythonPython slice() function returns a slice object representing the set of indices specified by range(start, stop, step). Python slice()函数返回一个slice对象,该对象代表由range(start,stop,step)指定的一组索引。 Pyt...

从零开始的教程世界 2800

vue2学习笔记2-老规矩,从Hello World开始,了解Vue实例和模板

想要把“Hello,World”放置在页面上,首先需要准备一个HTML的块级元素div,来承接内容。

l_q_l的专栏 1255

python slice函数_python:slice()函数

classslice(stop)classslice(start,stop[,step])返回一个切片对象,该对象表示由范围指定的索引集(开始、停止、步长)。start和step参数默认为None。Slice对象具有只读的数据属性,开始、停止和步长仅仅返回参数值(或它们的默认值)。他们没有其他明确的功能;但是,它们被数字Python和其他第三方扩展所使用。当使用扩展的索引语法时,也会生成Sli...

weixin_39634876的博客 257

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

python slice切片

slice()函数返回一个slice对象,该对象可用于对字符串,列表,元组等进行切片。-整数值,用于确定切片时每个索引之间的增量。如果未提供,则默认为None。-对象切片开始的起始整数。如果未提供,则默认为None。语法:slice(start, stop, step)-整数,直到切片发生。示例2:使用切片对象获取子字符串。示例3:使用负索引获取子字符串。示例1:创建切片对象。

qq_24946843的博客 499

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python中slice是什么类型_python中的slice对象

python中的slice对象slice是python的内建类型,主要用于构建灵活的切片,或者通过__getitem__实现更好的自建类型。以一维切片为例,seq[]里面既可以传整数,也可以传slice对象,即seq = ‘abcdef‘seq[1]seq[1:3]s = slice(1, 3)seq[s]多维对象支持整数和slice对象的组合,实际内部__getitem__得到的是一个元组,里面...

weixin_30666427的博客 1975

python list slice_如何在python中使用slice函数?slice函数的用法

slice本身是切片的意思,在python中也是。在使用Python的过程中,slice可以在list, tuple以及字符串等遍历访问的类型中截取其中的某些部分,是一个切片函数。下面请看slice函数介绍和使用。1、slice()函数返回一个slice对象,该对象代表由range(start,stop,step)指定的一组索引。2、语法classslice(stop)classslice(s...

weixin_31889665的博客 1005

python slice函数

菜鸟教程 描述 slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。 语法 slice 语法: class slice(stop) class slice(start, stop[, step]) 参数说明: start – 起始位置 stop – 结束位置 step – 间距 返回值 返回一个切片对象。 实例 以下实例展示了 slice 的使用方法: myslice = slice(5) # 设置截取5个元素的切片 myslice slice(None, 5, None)

风行 899

python中slice()的使用

一、slice()中输入1个参数 则传入的1个参数默认意为终止位置 比如输入参数4,对列表a切出的就是前4个数 代码如下: s=slice(4) a=range(10) list(a[s]) #对a使用slice(4),并转换为list 最后返回的就是[0, 1, 2, 3] 二、slice()中输入2个参数 则传入的2个参数分别意为起始位置和终止位置 比如输入参数4和9,对列表a切出的就是4...

善的边际递增 7196

python中slice()的用法

slice()是python中的切片函数,负责截取一段数据下来

liguandong 9478

python之slice,range

先介绍range print(range(10)) print(list(range(10))) 输出 默认的range 开始是0,结束是10,步长是1,我们修改一下步长试一下 把步长修改为2   print(range(0,10,2)) print(list(range(10))) 输出:  **********下面在看一下slice*********** se ...

703

python23_slice截取函数

【代码】python23_slice截取函数。

baidu_28767649的博客 283

python slice函数用法_Python:slice与indices的用法

Python:slice与indices的用法slice:eg:>>>e=[0,1,2,3,4,5,6]>>>s=slice(2,3)>>>e[s][2]slice的区间左闭右开[)>>>sslice(2,3,None)slice([strar,]stop[,step]),start缺少时就是0indices:eg:>&...

weixin_39592315的博客 568

python中slice 和 indices使用

一般来说,内置的slice()函数会创建一个切片对象,可以用在任何允许进行切片操作的地方。 下面是slice的简介: # slice 两种用法 classslice(stop) classslice(start,stop[,step]) 返回一个表示由range(start,stop,step)所指定索引集的slice对象。 其中start和step参数默认为...

chenyuhuaxin的博客 1万+

python内置函数slice()

python内置函数slice() 一、简介 slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。 二、详解 返回一个切片对象,表示由 range(start, stop, step) 指定的索引集。 start 和 step 参数默认为 None。 Slice 对象具有只读数据属性 start、stop 和 step,它们仅返回参数值(或其默认值)。 它们没有其他明确的功能; 但是它们被 NumPy 和其他第三方包使用。 当使用扩展索引语法时,也会生成切片对象。 例如:a[start:st

Shen Mu Xin's Blog 7470

python中slice是什么类型_Slice()Python中的内置函数,python,slice

slice()函数是一个切片函数,可以作用于list,tuple,numpy等结构,其作用类似于列表中常见的切片操作,但是如果按照某个长度将list等可以用于切片的序列做等分,一般可以用一个循环可以实现。l =[1,2,3,4,5,6,7,8,9,10]i = 0while(i<10):print(l[i:i+2])i += 2output:[1, 2][3, 4][5, 6][7, 8][...

weixin_36193839的博客 528
上一篇: 《图像纹理特征提取方法综述》论文笔记
下一篇: Matlab画图常用的符号和颜色
PParis
博客等级 码龄13年 20粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值