python,将一个大都是中文文本的列表中的字母、符号、空格去掉,形成新的列表
时间: 2023-12-03 14:43:05 浏览: 27
可以使用正则表达式来去除非中文字符和空格,示例如下:
```python
import re
text_list = ["这是一段中文文本。", "This is an English sentence.", "这里还有一些符号:!@#¥%……&*()"]
cleaned_list = []
for text in text_list:
cleaned_text = re.sub(r'[^\u4e00-\u9fa5]+', '', text) # 去除非中文字符
cleaned_text = re.sub(r'\s+', '', cleaned_text) # 去除空格
cleaned_list.append(cleaned_text)
print(cleaned_list)
```
输出结果为:
```
['这是一段中文文本', '', '这里还有一些符号']
```
其中,`[^\u4e00-\u9fa5]+` 表示除了中文字符以外的任意字符,`\s+` 表示一个或多个空格。`re.sub()` 函数用于在字符串中替换匹配的子串。
相关问题
python,将一个列表中的字母、符号、空格去掉,形成新的列表
可以使用列表推导式和字符串的isalpha()方法实现:
```python
old_list = ['a', 'b', 'c', ' ', 'd', '-', 'e', 'f']
new_list = [char for char in old_list if char.isalpha()]
print(new_list)
```
输出:
```
['a', 'b', 'c', 'd', 'e', 'f']
```
这里的isalpha()方法判断一个字符是否是字母,如果是返回True,否则返回False。因此,只有字母才会被加入到新的列表中。
python,将一个元素大都是中文字符串的列表中的字母、符号、空格去掉,形成新的列表,其中元素为字符串
可以使用正则表达式和列表推导式来实现:
```python
import re
old_list = ["你好,hello!", "这是一个测试。", "Python 编程。"]
new_list = [re.sub(r'[a-zA-Z\s\W]+', '', s) for s in old_list]
print(new_list)
```
输出:
```
['你好', '这是一个测试', '编程']
```
解释:
- `r'[a-zA-Z\s\W]+'` 是匹配所有字母、空格、和符号的正则表达式
- `re.sub(pattern, repl, string)` 是用来替换匹配正则表达式的字符串的函数
- `s` 是 `old_list` 中的每一个字符串元素
- `for s in old_list` 是列表推导式的语法,用来遍历 `old_list` 中的每一个元素,并应用正则表达式去掉其中的字母、符号、和空格