Python 字符串:Python 中的字符串切片

本文详细介绍了Python中的字符串切片操作,包括slice函数的不同实现、索引语法、负索引和步长的使用,以及其在列表和元组中的应用。通过实例演示了如何灵活运用切片来获取子字符串和子集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

Python 引入了多种字符串操作方法,允许获取字符串子字符串。其中一个操作称为 Slice。这个运算符非常通用且语法优雅,只需几个参数,就可以从字符串中获取许多子字符串组合。python 编程中的字符串切片就是通过从“开始”索引到“停止”索引切片来从给定字符串中获取子字符串。

切片()

Python 为我们提供了一个方法 slice(),它创建了一个“slice”对象,其中包含一组“start”和“stop”索引和步长值。具体来说,参数是(开始、停止、步进)。

根据 Python 官方关于 python 字符串切片的文档: Slice 有两种不同的实现方式,即 slice 有两种重载方法,每种方法都采用两组不同的参数:

  • slice(stop) // 起始为 0 & 步长为 1

  • 切片(开始、停止、步进)

    • start:是必须对其执行切片操作的字符串的起始索引。它确定字符串的切片将从哪里“开始”。
    • stop:是切片的停止索引,'until'必须执行哪个切片操作,即在生成子字符串时排除停止索引。
    • step:这是一个可选参数,用于定义迭代列表时的步骤,即它允许我们跳过元素。

两个 slice() 实现都返回一个格式为 slice(start, stop, end) 的对象。(检查示例-1)

此返回的对象现在可用于对字符串、列表、元组、集合、字节或范围对象进行切片。

应用:

示例 1 – 使用 slice 对象获取子字符串

 
s = "Welcome to scaler docs"
s1 = slice(6) # takes start as 0 automatically
print("s1-obj:", s1)
print("s1-res:", s[s1])
s2 = slice(2,8) # using slice(start, end, step) without step
print("s2-obj:", s2)
print("s2-res:", s[s2])
s3 = slice(1, 20, 2) # using slice(start, end, step) with step
print("s3-obj:", s3)
print("s3-res:", s[s3])

输出

 
s1-obj: slice(None, 6, None)
s1-res: Welcom
s2-obj: slice(2, 8, None)
s2-res: lcome
s3-obj: slice(1, 20, 2)
S3-res: ecm osae o

解释:

Slice() 有两个实现,一个具有单个参数,另一个具有三个参数。具有一个参数的实现将“stop”索引作为唯一且必需的参数,而具有三个参数的实现也采用“start”索引、“stop”索引和可选的“step”值。

在上面的例子中(在代码片段和输出中检查s1,s2和s3):

  • 在 s1 中:我们首先使用了 slice(),它只接受一个 'stop' 参数。在输出中,我们收到的子字符串为“Welcom”,因为“start”索引自动设置为“0”,而“stop”设置为6。
  • 在 s2 中:之后,我们使用带有三个参数方法的 slice(),但选择不提供可选的“step”参数。在输出中,我们收到了一个从索引“2”到“7”的子字符串,因为我们将“start”作为“2”提供,“stop”作为“8”。
  • 在 s3 中:我们也用 'step' 实现 slice()。因为我们提供的“步骤”为 2。在输出中,我们通过从索引 1 到 20 前进到每个 2 个元素来接收一个子字符串

因此,现在很明显,“step”值决定了迭代器(在形成子字符串时)将以什么值前进或递增。

注意:理解“停止”索引意味着它不会在“此索引”或“之后”停止此索引。执行切片时,它在此索引之前停止。而“start”索引包含在被切片的字符串中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新华

感谢打赏,我会继续努力原创。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值