在 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']
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']
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。