首页 > 代码库 > 【Python】考虑用生成器改写直接返回列表的函数
【Python】考虑用生成器改写直接返回列表的函数
使用生成器的好处是显而易见的,可以使代码更加清晰,同时减小内存的消耗,当函数需要返回列表,把函数改写为生成器是相对容易的。
下面这两个函数返回字符串中每个单词的索引:
1 def index_words1(text): 2 result = [] 3 if text: 4 result.append(0) 5 for index, letter in enumerate(text): 6 if letter == ‘ ‘: 7 result.append(index+1) 8 return result 9 10 11 def index_words2(text): 12 if text: 13 yield 0 14 for index, letter in enumerate(text): 15 if letter == ‘ ‘: 16 yield index+1 17 18 19 if __name__ == ‘__main__‘: 20 hhh = ‘Every dog has its day!‘ 21 result = index_words1(hhh) 22 print(‘result1‘, result) 23 result = list(index_words2(hhh)) 24 print(‘result2:‘, result)
参考资料:Effective Python
【Python】考虑用生成器改写直接返回列表的函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。