在 Python 中用下划线分割字符串

在 Python 中用下划线分割字符串

Split a string by underscore in Python

使用该str.split()方法通过下划线分割字符串,例如
my_list = my_str.split('_'). str.split方法将在每次出现下划线时拆分字符串,并返回包含结果的列表。

主程序
import re # ✅ split string on each occurrence of underscore my_str = 'one_two_three_four' my_list = my_str.split('_') print(my_list) # 👉️ ['one', 'two', 'three', 'four'] # ----------------------------- # ✅ split string by one or more consecutive underscores my_list_2 = re.split(r'_+', my_str) print(my_list_2) # 👉️ ['one', 'two', 'three', 'four']

str.split ()
方法使用定界符将字符串拆分为子字符串列表。

该方法采用以下 2 个参数:

姓名 描述
分隔器 在每次出现分隔符时将字符串拆分为子字符串
最大分裂 最多maxsplit完成拆分(可选)

如果在字符串中找不到分隔符,则返回仅包含 1 个元素的列表。

主程序
my_str = 'one' my_list = my_str.split('_') # 👇️ ['one'] print(my_list)

如果您的字符串以下划线开头或结尾,您将在列表中得到空字符串元素。

主程序
my_str = '_one_two_three_four_' my_list = my_str.split('_') print(my_list) # 👉️ ['', 'one', 'two', 'three', 'four', '']

您可以使用该filter()函数从列表中删除任何空字符串。

主程序
my_str = '_one_two_three_four_' my_list = list(filter(None, my_str.split('_'))) print(my_list) # 👉️ ['one', 'two', 'three', 'four']

filter函数接受一个函数和一个可迭代对象作为参数,并从可迭代对象的元素构造一个迭代器,函数返回一个真值。

如果您传递None函数参数,则 iterable 的所有虚假元素都将被删除。

所有不真实的值都被认为是虚假的。Python 中的虚假值是:

  • 定义为 falsy 的常量:NoneFalse.
  • 0任何数字类型的(零)
  • 空序列和集合:(""空字符串),()(空元组),[]
    (空列表),
    {}(空字典),set()(空集),range(0)(空范围)。

注意filter()函数返回一个filter对象,所以我们必须使用list()类将filter对象转换为列表。

另一种方法是使用该re.split()方法。

使用该re.split()方法通过下划线分割字符串,例如
my_list = re.split(r'_+', my_str). re.split()方法将在每次出现下划线时拆分字符串并返回包含结果的列表。

主程序
import re my_str = 'one___two__three_four' my_list_2 = re.split(r'_+', my_str) print(my_list_2) # 👉️ ['one', 'two', 'three', 'four']

re.split方法接受一个模式和一个字符串,并在每次出现该模式时拆分字符串

_匹配文字下划线字符

加号+用于匹配前面的字符(下划线)1 次或多次。

就其整体而言,正则表达式匹配一个或多个下划线字符。

当你想在拆分字符串时将多个连续的下划线计为单个下划线时,这很有用。

发表评论