优化函数式字典实现:如何精简代码循环并保持输出一致?
函数式风格改写方案
原代码中的for循环仅处理array_of_sentences的第一个元素就终止(因break),我们可以利用Python的迭代器特性和条件表达式,用两行代码完成相同逻辑:
# 替换原for循环的两行代码 first_obj = next(iter(array_of_sentences), None) resultSet = [{"TEXT": first_obj["TEXT"], "TYPE": first_obj["TYPE"], "LANGUAGE": first_obj["LANGUAGE"], "PREDICTED_LANGUAGE": detect(first_obj["TEXT"])}] if first_obj else []
改写说明
- 第一行通过
next(iter(array_of_sentences), None)获取数组的第一个元素,若数组为空则返回None,替代原循环的遍历终止逻辑 - 第二行用条件表达式直接生成结果数组:如果存在第一个元素,就构造包含预测结果的字典并放入数组;若数组为空则返回空数组,完全匹配原代码的输出逻辑
内容的提问来源于stack exchange,提问作者warrior.0779
相关产品推荐
相关产品推荐

