3.4 KiB
如何在 Python 中从字符串中获取子字符串——切片字符串
原文:https://www.pythoncentral.io/how-to-get-a-substring-from-a-string-in-python-slicing-strings/
那么如何在 Python 中获得子字符串呢?Python 有一个非常方便的特性,叫做“切片”,可以用来从字符串中获取子字符串。
但是首先,我们必须回顾一些事情来理解它是如何工作的。
切片 Python 对象
在 Python 中,字符串是字符的数组,只是它们的行为与数组稍有不同。但是,在大多数情况下,您可以将它们视为数组。
利用这些信息,我们可以在字符串上使用 Python 的数组功能,称为“切片”!切片是一种通用的功能,可以应用于 Python 中的任何数组类型的对象。
这是一个具体的例子,用一个简单的数组开始。
>>> a = [1,2,3,4,5]
>>> # This is slicing!
>>> a[:3]
[1, 2, 3]
正如你所看到的,这给了我们一个直到第三个元素的数组子集。切片接受两个“参数”,指定您希望在数组中的起始和结束位置。
语法:array[start:end]
因此,在上面的例子中,如果我们只需要元素 2 和 3,我们将执行以下操作:
>>> a[1:3]
[2, 3]
好吧,好吧。这与子弦有什么关系?问得好!
获取子字符串:切片 Python 字符串!
上面,我提到我们可以像对待数组一样对待字符串。这意味着我们可以将相同的逻辑应用到我们的字符串中!
这里有一个例子:
>>> s = 'Hello, everybody!'
>>> s[0]
'H'
>>> s[:3]
'Hel'
>>> s[2:5]
'llo'
哇!我们访问这个字符就像它是数组中的一个元素一样!厉害!
所以我们在这里看到的是一个“子串”。要从一个字符串中得到一个子字符串,只需输入字符串的起始位置和结束位置。
当然,我们也可以省略开始位置或结束位置,这将告诉 Python 我们希望分别从开始处开始我们的子字符串,或者在结尾结束它。
这是另一个使用我们上面的字符串的例子。
>>> # Start from the beginning and go to character 5
>>> s[:5]
'Hello'
>>> # Start from character 5 and go to the end
>>> s[5:]
', everybody!'
>>> s[:]
'Hello, everybody!'
好吧,这很好,但是我在最后一行做了什么?我没有指定开始或结束,那么它怎么还能工作呢?
我们所做的是告诉 Python 从开始元素一直到结束元素。完全有效。它还创建字符串或数组的新副本。如果你需要原件的副本来修改,你可以用这个!
Python 中的反向子串切片
另一个例子,使用扩展切片,可以逆序得到子串。这只是一个“好玩”的例子,但是如果你需要在 Python 中反转一个字符串,或者得到一个字符串的反转子字符串,这肯定会有帮助。
开始: 【python】
s[::-1] '!ydobyreve,olleH ' s【4::-1】 【olleH '
厉害!
解释扩展切片超出了本文的范围,所以我不会说太多。唯一不同的是结尾多了一个冒号和后面的数字。额外的冒号告诉 Python 这是一个扩展片,而“-1”是遍历字符串时使用的索引。如果我们在“-1”的位置放一个“1”,我们会得到和以前一样的结果。
你有它!Python 中获取子串真的很容易,希望我用 Python-fu 多教育了你一些。
再见了!