定义一个生成器函数,传入英文字符串,选出其中长度超过4的单词
时间: 2023-07-16 10:13:29 浏览: 130
下面是一个生成器函数,可以选出英文字符串中长度超过4的单词:
```python
def select_words(string):
words = string.split()
for word in words:
if len(word) > 4:
yield word
```
这个函数首先使用 `split()` 方法将字符串拆分成单词列表,并遍历每个单词。如果单词的长度超过4,那么就使用 `yield` 返回该单词。这个函数返回的是一个生成器对象,可以使用 `for` 循环或者其他迭代方式获取其中的元素。
相关问题
定义一个生成器函数,传入英文字符串,选出其中长度超过4的单词,顺序返回这些单词
可以使用Python中的字符串处理和生成器函数来实现这个任务,以下是一个可能的实现:
```python
def filter_long_words(text):
"""
从英文字符串中选出长度超过4的单词,按顺序返回这些单词
"""
# 分割字符串为单词列表
words = text.split()
# 过滤长度小于等于4的单词
long_words = (word for word in words if len(word) > 4)
# 按顺序返回长单词
return list(long_words)
```
这个函数首先把输入的字符串按空格分割成单词列表,然后使用生成器表达式过滤出长度大于4的单词,最后把这些长单词转换成列表并返回。注意到这个函数返回的是一个列表,而不是一个生成器对象。如果要返回生成器对象,可以把 `return` 语句改为 `yield` 语句。
示例调用:
```python
text = "This is a sample text containing some long words like elephant and giraffe"
long_words = filter_long_words(text)
print(long_words) # ['sample', 'text', 'containing', 'elephant', 'giraffe']
```
python 定义一个生成器函数,传入英文字符串,选出其中长度超过4的单词,顺序返回这些单词。
可以使用Python中的yield关键字定义一个生成器函数,来实现这个需求。以下是一个示例代码:
```python
def filter_long_words(string):
"""
传入一个英文字符串,选出长度超过4的单词,顺序返回这些单词
"""
for word in string.split():
if len(word) > 4:
yield word
```
这个函数会将输入的字符串按照空格分隔成一个个单词,然后逐个判断单词的长度是否大于4,如果大于4则使用yield关键字返回该单词。在函数外部可以使用for循环来遍历生成器对象并依次获取筛选出的单词,例如:
```python
text = "This is a test sentence for filtering long words"
long_words = filter_long_words(text)
for word in long_words:
print(word)
```
输出结果为:
```
sentence
filtering
```
注意:这个生成器函数只适用于英文单词,对于中文或其他语言的文本需要稍作修改。
阅读全文