python提取字符串中的单词并将其加入列表
时间: 2024-05-15 20:18:40 浏览: 121
可以使用正则表达式来提取字符串中的单词并将其加入列表,示例如下:
```python
import re
string = "This is a sample sentence."
words = re.findall(r'\b\w+\b', string)
print(words)
```
输出结果为:
```
['This', 'is', 'a', 'sample', 'sentence']
```
解释一下正则表达式 `\b\w+\b`,其中 `\b` 表示单词边界,`\w+` 表示匹配一个或多个字符(字母、数字、下划线),所以整个表达式可以匹配一个完整的单词。`re.findall()` 方法可以返回所有匹配的字符串组成的列表。
相关问题
python编写一个函数getwords(),传入一个字符串,用ascall码提取字符串中所有的单词并返回单词列表,多个连在一起的大小写字母可视为一个单词
以下是一个实现该功能的 `getwords()` 函数的示例代码:
```python
def getwords(s):
words = [] # 存储单词的列表
cur_word = '' # 当前正在处理的单词
for c in s:
if c.isalpha(): # 如果当前字符是字母
if not cur_word: # 如果当前没有正在处理的单词
cur_word = c.lower() # 开始一个新单词
elif cur_word[-1].islower() == c.islower(): # 如果当前字符与前一个字符大小写相同
cur_word += c.lower() # 将当前字符加入当前单词
else: # 否则当前字符是一个新单词的开头
words.append(cur_word) # 将当前单词加入单词列表
cur_word = c.lower() # 开始一个新单词
else: # 如果当前字符不是字母
if cur_word: # 如果当前有正在处理的单词
words.append(cur_word) # 将当前单词加入单词列表
cur_word = '' # 重置当前单词
if cur_word: # 处理完整个字符串后,如果当前还有正在处理的单词
words.append(cur_word) # 将当前单词加入单词列表
return words
```
该函数首先将传入的字符串 `s` 初始化为空列表 `words` 和当前单词 `cur_word`。然后遍历字符串 `s` 中的每个字符 `c`,如果当前字符是字母,则根据字符与前一个字符的大小写关系判断是否将其加入当前单词,否则将当前单词加入单词列表,并重置当前单词。最后返回单词列表。需要注意的是,为了将多个连在一起的大小写字母视为一个单词,在将字符加入当前单词时,需要将其转换为小写字母。
python编写程序,给定若干个字符串,通过函数来统计这若干个字符串中包含多少个不同的单词。
可以使用以下代码来实现:
```python
import re
def count_unique_words(*strings):
words = set()
for string in strings:
# 利用正则表达式提取字符串中的单词
pattern = r'\b\w+\b'
matches = re.findall(pattern, string)
# 将单词加入集合中
words.update(matches)
return len(words)
```
其中,`count_unique_words` 函数接收若干个字符串参数,使用正则表达式从字符串中提取单词,并将所有不同的单词存入一个集合中,最后返回集合的长度,即不同单词的数量。
使用方法:
```python
strings = [
'hello world',
'hello python',
'python is awesome',
'hello world'
]
count = count_unique_words(*strings)
print(count) # 4
```
在这个例子中,输入的字符串列表中一共包含 4 个不同的单词:`hello`、`world`、`python` 和 `is`。
阅读全文