geekdoc-python-zh/docs/pythoncentral/how-to-get-a-substring-from...

3.4 KiB
Raw Permalink Blame History

如何在 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] 'ydobyreveolleH ' s【4::-1】 【olleH '

厉害!

解释扩展切片超出了本文的范围,所以我不会说太多。唯一不同的是结尾多了一个冒号和后面的数字。额外的冒号告诉 Python 这是一个扩展片,而“-1”是遍历字符串时使用的索引。如果我们在“-1”的位置放一个“1”我们会得到和以前一样的结果。

你有它Python 中获取子串真的很容易,希望我用 Python-fu 多教育了你一些。

再见了!