在 Python 中用一个或多个空格拆分字符串
Split a string by one or more spaces in Python
使用str.split()
不带参数的方法将字符串拆分为一个或多个空格,例如my_str.split()
. 当在str.split()
没有参数的情况下调用该方法时,它将连续的空白字符视为单个分隔符。
主程序
my_str = 'alice bob carl diana' my_list = my_str.split() print(my_list) # 👉️ ['alice', 'bob', 'carl', 'diana']
我们使用该str.split()
方法将字符串拆分为一个或多个空格。
str.split ()
方法使用定界符将字符串拆分为子字符串列表。
该方法采用以下 2 个参数:
姓名 | 描述 |
---|---|
分隔器 | 在每次出现分隔符时将字符串拆分为子字符串(可选) |
最大分裂 | 最多maxsplit 完成拆分(可选) |
当在
str.split()
没有分隔符的情况下调用该方法时,它将连续的空白字符视为单个分隔符。如果字符串以尾随空格开始或结束,则列表将不包含空字符串元素。
主程序
my_str = ' alice bob carl diana ' my_list = my_str.split() print(my_list) # 👉️ ['alice', 'bob', 'carl', 'diana']
如果我们不向该
split()
方法传递参数并拆分一个空字符串或仅包含空白字符的字符串,我们将得到一个空列表。主程序
my_str = ' ' my_list = my_str.split() print(my_list) # 👉️ []
您还可以使用正则表达式将字符串拆分为一个或多个空格。
使用该re.split()
方法将字符串拆分为一个或多个空格,例如
re.split(r'\s+', my_str)
. 该re.split()
方法将在每次出现一个或多个空格时拆分字符串,并返回包含结果的列表。
主程序
import re my_str = 'alice bob carl diana' my_list = re.split(r'\s+', my_str) print(my_list) # 👉️ ['alice', 'bob', 'carl', 'diana']
re.split方法接受一个模式和一个字符串,并在每次出现该模式时拆分字符串。
该\s
字符匹配 unicode 空白字符,如 [ \t\n\r\f\v]
.
加号+
用于匹配前面的字符(空格)1 次或多次。
就其整体而言,正则表达式匹配一个或多个空白字符。
使用这种方法时,如果您的字符串以空格开头或结尾,您将得到空字符串元素。
主程序
import re my_str = ' alice bob carl diana ' my_list = re.split(r'\s+', my_str) print(my_list) # 👉️ ['', 'alice', 'bob', 'carl', 'diana', '']
您可以使用该filter()
函数从列表中删除任何空字符串。
主程序
import re my_str = ' alice bob carl diana ' my_list = list(filter(None, re.split(r'\s+', my_str))) print(my_list) # 👉️ ['alice', 'bob', 'carl', 'diana']
filter函数接受一个函数和一个可迭代对象作为参数,并从可迭代对象的元素构造一个迭代器,函数返回一个真值。
如果您传递
None
函数参数,则 iterable 的所有虚假元素都将被删除。所有不真实的值都被认为是虚假的。Python 中的虚假值是:
- 定义为 falsy 的常量:
None
和False
. 0
任何数字类型的(零)- 空序列和集合:(
""
空字符串),()
(空元组),[]
(空列表),{}
(空字典),set()
(空集),range(0)
(空范围)。
注意filter()
函数返回一个filter
对象,所以我们必须使用list()
类将filter
对象转换为列表。
您还可以使用该
re.split()
方法将字符串拆分为 1 次或多次出现的不同分隔符。下面是一个将字符串拆分为 1 次或多次出现的下划线的示例。
主程序
import re my_str = 'alice__bob_carl________diana' my_list = re.split(r'_+', my_str) print(my_list) # 👉️ ['alice', 'bob', 'carl', 'diana']
加号+
用于匹配前面的字符(下划线)1 次或多次。