去除字符串列表中中不为中文词语的内容
时间: 2023-08-15 16:03:07 浏览: 75
可以使用Python中的正则表达式模块re来实现。具体步骤如下:
1. 导入re模块。
2. 定义正则表达式,匹配非中文字符。
3. 遍历字符串列表,使用re.sub()函数将非中文字符替换为空字符串。
代码如下:
```python
import re
def remove_non_chinese_words(str_list):
# 定义正则表达式,匹配非中文字符
pattern = re.compile('[^\u4e00-\u9fa5]')
# 遍历字符串列表,使用re.sub()函数将非中文字符替换为空字符串
chinese_str_list = []
for s in str_list:
chinese_str = re.sub(pattern, '', s)
if chinese_str:
chinese_str_list.append(chinese_str)
return chinese_str_list
```
使用示例:
```python
str_list = ["hello", "你好", "world", "世界"]
chinese_str_list = remove_non_chinese_words(str_list)
print(chinese_str_list)
# 输出:['你好', '世界']
```
相关问题
键盘输入一段文本,保存在一个字符串变量s中,分别用Python内置函数及jieba库中己有函数计算字符串s的中文字符个数及中文词语个数并输出。 例如 键盘输入:俄罗斯举办世界杯 屏幕输出:中文字符数为8,中文词语数为3
好的,我来回答您的问题。
首先,为了计算字符串s的中文字符数,我们可以编写如下代码:
```python
import re
s = input("请输入字符串:")
chinese_chars = re.findall('[\u4e00-\u9fa5]', s)
print("中文字符数为:", len(chinese_chars))
```
上述代码中,我们使用了Python内置的re模块中的findall函数,利用正则表达式来匹配中文字符,并计算其数量。
计算中文词语数,我们可以使用jieba库中的cut函数来进行分词,然后统计其中的中文词语数量。代码如下:
```python
import jieba
s = input("请输入字符串:")
seg_list = jieba.cut(s)
chinese_words = [word for word in seg_list if '\u4e00' <= word <= '\u9fa5']
print("中文词语数为:", len(chinese_words))
```
上述代码中,我们使用了jieba库中的cut函数进行分词,并利用列表解析式从分词结果中筛选出中文词语。最后,我们计算中文词语数量即可。
希望我的回答能够帮到您!
阅读全文