美文网首页
考虑用生成器来改写直接返回列表的函数

考虑用生成器来改写直接返回列表的函数

作者: 啦啦啦老王 | 来源:发表于2019-04-26 14:18 被阅读0次

def index_words(text):

        result = []

        if text:

               result.append(0)

        for index,letter in enumerate(text):

               if letter == ' ':

                    result.append(index+1) 

        return result

可以改写成

def index_words(text):

       if text:

            yield 0

        for index,letter in enumerate(text):

            if letter == ' ';

                yeild index+1

result = list(index_words(text))

用列表的问题:1.大量代码都在操作列表,与实际问题无关

                            2.一次放入所有结果,可能会使用过多内存导致奔溃

相关文章

  • python---生成器与迭代器

    Effective Python书中,第16条建议:考虑用生成器来改写直接返回列表的函数    通常情况下,如果我...

  • 编写高效且优雅的 Python 代码

    使用生成器 考虑使用生成器来改写直接返回列表的函数 # 定义一个函数,其作用是检测字符串里所有 a 的索引位置,最...

  • 考虑用生成器来改写直接返回列表的函数

    def index_words(text): result = [] if text: r...

  • 函数(3)-- 函数返回生成器

    第16条:考虑用生成器来改写直接返回列表的函数 如果一个函数要产生一系列结果,最简单的做法是把这一系列结果放在一个...

  • Python基础(43) - Python生成器的使用

    编写一个生成器,将二维列表转成一个一维列表 Python生成器的概念 生成器是一个函数 通过yied来返回值 生成...

  • Generator

    生成器函数(Generator Function) 生成器函数不能直接作为函数来使用 执行生成器函数会返回一个生成...

  • py_19 yield生成器

    一、yield:函数体内有关键字yield,返回值是生成器 通过列表生成式,我们可以直接创建一个列表。但是,受到内...

  • 迭代器&生成器

    列表推导式: 列表生成式: 相当于: 以上就是用for语句的迭代器。 生成器表达式: 生成器函数: 调用: 生成器...

  • 第七章 数据结构

    数据结构 []返回list,()返回生成器 列表推导式 ​ 列表推导式提供了从序列创建列表的简单途径。 用 i...

  • list()原理

    今天看到个好玩的东西: a 是一个生成器,很明显,但是用list(a)之后,却直接返回了一个列表。list()解释...

网友评论

      本文标题:考虑用生成器来改写直接返回列表的函数

      本文链接:https://www.haomeiwen.com/subject/bgefnqtx.html