在 Python 中根据空格拆分字符串
本教程将演示如何在 Python 中根据空格作为定界符来分割字符串。
在 Python 中拆分字符串意味着根据所使用的分隔符或分隔符将单个字符串切成字符串数组。
例如,如果一个字符串初始化为 Hello, World! I am here.
,使用空格作为分隔符将其拆分将产生以下输出:
['Hello,', 'World!', 'I', 'am', 'here.']
在 Python 中使用字符串 split()
方法拆分字符串
内置的 Python 字符串方法 split()
是使用空格分割字符串的理想解决方案。默认情况下,split()
方法返回由使用空格作为分隔符分割原始字符串而得到子字符串数组。
例如,让我们使用相同的字符串示例 Hello, World! I am here.
,并使用 split()
方法将字符串分割成子字符串数组。
string_list = "Hello, World! I am here.".split()
print(string_list)
输出的结果和预期的一样。
["Hello,", "World!", "I", "am", "here."]
除此之外,split()
方法还会自动删除前导和尾随空格,并将它们视为单个空格分隔符。
让我们修改前面的示例,使其包含随机的前导,尾随和连续空格。
string_list = " Hello, World! I am here. ".split()
print(string_list)
split()
方法自动处理的另一种情况是除空格文字外,还使用制表符,换行符和回车符分别用\t
,\n
和\r
表示。提到的空白格式也被认为是定界符和修剪的主题。
输出:
['Hello,', 'World!', 'I', 'am', 'here.']
例如:
string_list = " Hello, World! I am here.\nI am also\there too,\rand here.".split()
print(string_list)
输出:
['Hello,', 'World!', 'I', 'am', 'here.', 'I', 'am', 'also', 'here', 'too,', 'and', 'here.']
考虑到这些因素,你不必担心在执行函数之前显式地修剪每个空格。这是一个方便的功能。
在 Python 中使用 re.split()
分割字符串
Python RegEx(正则表达式)模块 re
还具有预定义的 split()
函数,我们可以使用它代替内置的 split()
方法。不过,请注意,在性能方面,re.split()
与内置的 split()
方法相比要慢一些。
re.split()
函数接受两个主要参数:RegEx 字符串和执行拆分功能的字符串。代表空格的 RegEx 关键字是\s
。\s
是所有空格的归类,包括上述所有的空格(\n
,\t
,\r
,\f
)。
例如,声明一个字符串并执行 re.split()
将它们拆分为子字符串数组。要考虑尾随空格和前导空格,请在 RegEx 字符串中添加一个+
符号,以将一个或多个连续空格作为单个组进行匹配。
另外,将关键字 r
附加到 RegEx 字符串中,以确保 Python 适当地处理转义序列。
import re
exStr = "Hello, World!\nWelcome\tto my tutorial\rarticle."
print(re.split(r"\s+", exStr))
在 Python 中使用 re.findall()
代替 re.split()
拆分字符串
另外,也可以使用 re.findall()
。findall()
函数与 split()
完全相反。此函数查找与给定 RegEx 字符串匹配的所有子字符串,而 split()
方法使用 RegEx 字符串作为分隔符。
要使用 findall()
函数使用空格分割字符串,请通过大写字母(\S
),它是空格匹配字符\s
的相反面。findall()
接受与 split()
相同的参数。
import re
exStr = "Hello, World!\nWelcome\tto my tutorial\rarticle."
print(re.findall(r"\S+", exStr))
这两个函数将产生相同的输出:
['Hello,', 'World!', 'Welcome', 'to', 'my', 'tutorial', 'article.']
总之,使用空格作为定界符来分割字符串的最好和最优化方法是内置的 split()
方法。它附加在字符串对象上,默认情况下考虑前导和尾随空格。使用此函数也不需要任何正则表达式知识。
否则,尽管两个函数的执行速度都比内置的 split()
方法慢,但 re.split()
和 re.findall()
可以用作 split()
方法的替代品。
相关文章
Python 中的字典数组或列表
发布时间:2023/12/18 浏览次数:125 分类:Python
-
本教程演示了如何在 Python 中创建字典数组。Python 中的字典以键值对的形式构成一组元素。列表可以在一个公共名称和特定索引下存储不同类型的元素。
检查索引是否存在于 Python 列表中
发布时间:2023/12/18 浏览次数:185 分类:Python
-
本教程演示了使用列表范围和 IndexError 异常检查 Python 列表中是否存在索引。我们将介绍两种使用列表范围和 IndexError 异常检查列表索引是否存在的方法。
在 Python 中对数字列表进行归一化
发布时间:2023/12/18 浏览次数:50 分类:Python
-
本教程演示如何归一化 python 中的数字列表。归一化意味着将给定的数据转换为另一个尺度。我们重新调整数据,使其介于两个值之间。
如何在 Python 中创建具有特定大小的列表
发布时间:2023/12/18 浏览次数:178 分类:Python
-
本教程介绍了如何在 Python 中创建具有特定大小的列表。当程序员提前知道元素数量时,为列表或数组预分配存储空间是程序员经常用地方式。
在 Python 中的列表中删除多个元素
发布时间:2023/12/18 浏览次数:188 分类:Python
-
我们可以使用 if...else 控制语句、列表推导式、列表切片和 for 循环从 Python 中的列表中删除多个元素。要从 Python 列表中删除多个值,我们可以删除列表的实际值或要从列表中删除的值的索引。
如何在 Python 中获取一个列表的平均值
发布时间:2023/12/18 浏览次数:142 分类:Python
-
本教程将演示如何在 Python 中使用 statistics.mean 获得一个给定列表的平均值。本教程介绍了如何在 Python 中计算一个列表的平均数。
在 Python 中将字典转换为列表
发布时间:2023/12/18 浏览次数:54 分类:Python
-
本文介绍如何在 Python 中将字典转换为列表。Python 中的字典是由键-值对组合而成。在 key 的帮助下,你可以访问字典里面的值。
从 Python 列表中删除某元素的所有出现
发布时间:2023/12/18 浏览次数:163 分类:Python
-
在本文中,我们将看到如何在 Python 中从一个 List 中删除一个元素的所有出现。在 Python 中,列表允许同一个元素多次出现。即使一个元素的值可能与其他元素相同
在Python中将十六进制转换为字节
发布时间:2023/12/18 浏览次数:153 分类:Python
-
本教程介绍了如何在Python中将十六进制值转换为字节文字。十六进制,通常简写为hex,使用16个符号(0-9,a-f)表示值,与十进制的10个符号形成对比。例如,十进制中的1000在十六进制中是3E8。