在 Python 中用连字符分割字符串

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

# ✅ 在每次出现连字符时拆分字符串
my_str = 'one-two-three-four'

my_list = my_str.split('-')
print(my_list)  # 👉️ ['one', 'two', 'three', 'four']

# ✅ 在每个空格或连字符上拆分字符串
my_str_2 = 'one two-three four five'
my_list_2 = my_str_2.replace('-', ' ').split(' ')

print(my_list_2)  # 👉️ ['one', 'two', 'three', 'four', 'five']

在 Python 中用连字符分割字符串

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

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

  • separator 在每次出现分隔符时将字符串拆分为子字符串
  • 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']

过滤器函数将一个函数和一个迭代器作为参数,并从迭代器的元素构造一个迭代器,函数为其返回一个真值。

如果为函数参数传递 None ,则可迭代的所有虚假元素都将被删除。

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

  • 定义为虚假的常量:None 和 False。
  • 任何数字类型的 0(零)
  • 空序列和集合:””(空字符串)、()(空元组)、[](空列表)、{}(空字典)、set()(空集)、range(0)(空范围)。

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

如果我们需要在出现连字符和另一个字符时拆分字符串,请将连字符替换为另一个字符并在该字符上拆分。

my_str_2 = 'one two-three four five'
my_list_2 = my_str_2.replace('-', ' ').split(' ')

print(my_list_2)  # 👉️ ['one', 'two', 'three', 'four', 'five']

我们用空格替换了所有出现的连字符,并在每个空格上拆分字符串。

我们可以通过用连字符替换每个出现的空格并在每个连字符上拆分来获得相同的结果。

my_str_2 = 'one two-three four five'
my_list_2 = my_str_2.replace(' ', '-').split('-')

print(my_list_2)  # 👉️ ['one', 'two', 'three', 'four', 'five']
免责声明:
1.本站所有内容由本站原创、网络转载、消息撰写、网友投稿等几部分组成。
2.本站原创文字内容若未经特别声明,则遵循协议CC3.0共享协议,转载请务必注明原文链接。
3.本站部分来源于网络转载的文章信息是出于传递更多信息之目的,不意味着赞同其观点。
4.本站所有源码与软件均为原作者提供,仅供学习和研究使用。
5.如您对本网站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。
火焰兔 » 在 Python 中用连字符分割字符串