Python的字符串split或re.split方法产生空字符的解决方法有哪些
时间: 2024-02-13 17:59:56 浏览: 148
产生空字符的原因可能是字符串中包含多个连续的分隔符或者字符串开头或结尾有分隔符。以下是解决方法:
1. 使用filter函数过滤掉空字符:可以将split或re.split的结果作为参数传入filter函数,使用lambda表达式过滤掉空字符。
```python
str = "hello,,world,"
lst = list(filter(lambda x: x != '', str.split(',')))
print(lst) # ['hello', 'world']
```
2. 使用列表推导式过滤掉空字符:也可以将split或re.split的结果作为列表推导式的输入,使用if语句过滤掉空字符。
```python
str = "hello,,world,"
lst = [x for x in str.split(',') if x != '']
print(lst) # ['hello', 'world']
```
3. 使用正则表达式去除空字符:可以使用re.sub函数,将所有连续的分隔符替换为一个分隔符,然后再使用split或re.split函数。
```python
import re
str = "hello,,world,"
new_str = re.sub(r',+', ',', str) # 将多个逗号替换为一个逗号
lst = new_str.split(',')
print(lst) # ['hello', 'world']
```
4. 使用strip函数去除开头和结尾的分隔符:可以在split或re.split函数之前,使用strip函数去除字符串开头和结尾的分隔符。
```python
str = ",,hello,,world,,,"
new_str = str.strip(',')
lst = new_str.split(',')
print(lst) # ['hello', 'world']
```
阅读全文