如何将字符串列表元素逐个传入函数,替换为函数生成的列表并清理空值?
西班牙语动词提取与列表处理实现方案
1. 修正函数返回值错误
原函数错误返回了输入参数,需改为返回提取到的动词列表。修正后的完整函数如下:
import spacy # 加载西班牙语模型 nlp = spacy.load("es_core_news_sm") def evaluates_if_substring_is_a_verb_func(input_str): list_verbs_in_element = [] doc = nlp(input_str) # 遍历文本词元,提取POS标签为VERB的动词 for token in doc: if token.pos_ == "VERB": list_verbs_in_element.append(token.text) # 修正返回值:返回提取到的动词列表 return list_verbs_in_element
2. 列表元素替换与过滤
将输入列表的每个元素传入修正后的函数,用返回的动词列表替换原元素;随后过滤掉空列表或仅含空白字符的无效元素,得到目标结果:
# 示例输入列表(可替换为实际输入) list_verbs_in_this_input = ["correr", "el perro saltar", "nosotros llegamos", "habrá una reunión", " ", ""] # 替换每个元素为函数返回的动词列表 processed_list = [evaluates_if_substring_is_a_verb_func(item) for item in list_verbs_in_this_input] # 展平嵌套列表并过滤无效元素 final_result = [verb for sublist in processed_list for verb in sublist if verb.strip()] print(final_result) # 输出:['correr', 'saltar', 'llegamos', 'habrá']
关键说明
- 函数修正:核心是把返回值从输入参数改为提取到的动词列表,解决原函数逻辑错误。
- 列表处理:通过列表推导式完成元素替换,再通过嵌套推导式展平列表并过滤空值,确保结果符合预期。
内容的提问来源于stack exchange,提问作者Matt095
相关产品推荐
相关产品推荐

