Python 字符串操作

2024 年 8 月 29 日 | 阅读 6 分钟

在本教程中,我们将学习一些很酷的字符串操作方法。我们将看到如何以 Pythonic 的方式操作字符串。字符串是每个 Python 程序员都会用到的基本且重要的数据结构。在 Python 中,字符串是用单引号('...')或双引号("...")括起来的字符序列。它是一种不可变(immutable)的内置数据结构,意味着一旦创建了字符串,就无法修改它。但是,我们可以通过连接或切片现有字符串来创建新字符串。

现在让我们来了解一些必须知道的 Python 字符串操作技巧。

1. 字符串填充:优雅地添加额外字符

字符串填充是指在字符串的开头或结尾添加字符,直到达到特定长度。这在格式化文本以便与其他数据对齐或使其更易于阅读时非常有用。

在 Python 中,您可以使用 str.ljust()、str.rjust() 和 str.center() 方法来填充字符串。

这是一个使用 str.ljust() 方法用空格填充字符串的示例

示例 -

输出

Python

在上面的示例中,ljust() 方法在字符串末尾添加空格,直到字符串长度达到十个字符。

我们还可以通过将填充字符作为参数传递给方法来指定它

输出 -

输出

----Python

在此示例中,rjust() 方法在字符串开头添加破折号,直到字符串长度达到十个字符。

str.center() 方法可用于将字符串居中在特定宽度内

示例 -

输出

**Python**

2. 字符串拆分

字符串拆分是指根据指定的定界符或分隔符将字符串划分为多个子字符串。在 Python 中,您可以使用 str.split() 方法来拆分字符串。

这是一个基于空格字符拆分字符串的示例。

示例 -

输出

['Hello', 'world,', 'how', 'are', 'you', 'today?']

在此示例中,split() 方法返回一个子字符串列表,其中每个子字符串对应于原始字符串中的一个单词。

我们也可以指定一个不同的分隔符来拆分字符串

示例 -

输出

['apple', 'banana', 'orange', 'grape']

在上面的示例中,split() 方法根据逗号拆分字符串,并返回一个子字符串列表,其中每个子字符串对应于原始字符串中的一种水果。

默认情况下,split() 方法根据空格字符拆分字符串。但是,您也可以使用 sep 参数指定一个不同的分隔符。

示例 -

在此示例中,split() 方法根据破折号(-)拆分字符串,并返回一个子字符串列表,其中前两个子字符串对应于第一种和第二种水果,第三个子字符串对应于剩余的水果。maxsplit 参数指定要执行的最大拆分次数。

3. 使用 F-Strings 进行字符串格式化

f-string 是 Python 3.6 及更高版本中的一个功能,允许在字符串字面量中嵌入表达式。它们是创建包含动态值或使用变量值格式化字符串的便捷方法。让我们来理解下面的例子。

示例 -

输出

Hello, my name is Alice and I'm 30 years old.
We can also format value in a specific way.

示例 -

输出

The price is $12.35

4. 消除字符串中不必要的字符

Python 的 strip() 方法在数据清理中非常有用,尤其是在删除字符串开头或结尾的不必要字符时。数据科学家经常发现数据清理工作繁琐,但 Python 的内置字符串操作方法使其更容易删除字符串中不需要的字符。strip() 方法尤其可以删除字符串开头或结尾的字符。

示例 -

输出

Hello, World

解释 -

在上面的代码中,strip() 方法用于删除文本字符串开头和结尾的感叹号(!)。结果字符串 clean_text 只包含文本内容,没有任何不必要的字符。

请注意,strip() 方法仅删除字符串开头和结尾的字符。如果您想删除字符串内部的字符,可以使用其他字符串操作方法,例如 replace() 或正则表达式。

5. 连接字符串

在 Python 中,我们可以使用 + 运算符来连接字符串。下面是一个例子

示例 -

输出

Hello world

在上面的示例中,我们首先定义了两个字符串 string1 和 string2。然后我们使用 + 运算符将它们连接起来,并在它们之间添加一个空格,以创建一个名为 result 的新字符串。最后,我们使用 print() 函数打印出 result 字符串。

另一种方式是,我们可以使用 join() 方法来连接字符串。让我们来理解下面的例子。

示例 -

输出

apple banana cherry

在上面的代码中,我们首先定义了一个分隔符变量,它被设置为一个空格字符。然后我们定义了一个名为 my_list 的列表,其中包含三个字符串。我们在分隔符变量上使用 join() 方法,并将 my_list 列表作为参数传递。join() 方法使用分隔符将 my_list 列表中的字符串连接起来,并返回一个名为 result 的新字符串。最后,我们使用 print() 函数打印出 result 字符串。

6. 有效地搜索子字符串

查找搜索字符串是日常编程中的常见要求。Python 提供了两种方法。一种是 find() 方法 -

示例 -

输出

17
35

第二种方法是 index() -

示例 -

输出

17
35
# ValueError: substring not found

正如我们所见,Python 的 find() 方法在找不到字符串时返回 -1。但是,index() 方法会引发一个错误。

7. 利用正则表达式处理复杂的字符串

正则表达式(regex)是处理 Python 中复杂字符串操作任务的强大工具。它们允许我们在字符串中搜索模式,提取信息,并根据这些模式执行替换。

要在 Python 中使用 regex,我们首先需要导入 re 模块。这是一个使用 regex 在字符串中搜索模式的简单示例

让我们理解下面的例子。

示例 -

输出

Match Found

解释 -

在上面的代码中,我们在字符串 "The quick brown fox jumps over the lazy dog." 中搜索模式 "fox"。re.search() 函数在找到模式时返回一个匹配对象,否则返回 None。我们使用 if 语句检查是否找到匹配项,并打印相应的消息。

让我们来理解另一个在 Python 中使用 regex 的例子 -

示例 -

解释 -

在上面的示例中,我们使用 regex 从具有特定格式的字符串中提取姓名和年龄。模式 r"(\w+) (\w+) \((\d+) years old\)" 匹配第一个名字、姓氏以及括号中的年龄。我们使用 match.group() 方法提取匹配的组并打印它们。

8. 移除字符串的简便方法

通常,我们使用循环来反转给定的字符串;也可以使用切片来反转。但是,这不是 Pythonic 的方式。让我们看下面的例子。

示例 -

输出

reteP