• 2019年2月1日 生成器总结


    生成器函数:一次只返回一个结果,对大数据处理非常有用。

    遵循迭代器协议:for,sum,map,reduce,filter

    text='happy'
    for index , letter in enumerate(text,start=1):
        print(index,letter)

    >>

    1 h
    2 a
    3 p
    4 p
    5 y

    # 求一段文字中,每个单词出现的位置
    
    
    def f_w(text):
        result=[]
        if text:
            result.append(0)
            for index,letter in enumerate(text,start=1):
                if letter == ' ':
                    result.append(index)
        return result
    
    print(f_w('dont worry be happy'))
    
    #______++++++++++++__________
    
    def test(text):
        if text!='':#也可以写成 if text:
            yield 0
            for index , letter in enumerate(text,start=1):
                if letter == ' ':
                    yield index

    >>

    [0, 5, 11, 14]
    <generator object test at 0x100755cf0>
    0
    5
    11
    14

    l=["a" for i in range(10)]#列表解析
    print(l)
    res=True if 3>5 else False#三元表达式
    print(res)
    m=('a' for i in range(10))#变成生成器表达式,只要列表解析改中括号
    print(m)

    》》

    ['a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a']
    False
    <generator object <genexpr> at 0x102055d68>

    def test():
        for i in range(4):
            yield i
    
    t=test()
    print(t.__next__())
    t1=(i for i in t)#生成器表达式
    print(t1.__next__())
    print(list(t1))

    >>

    0
    1
    [2, 3]

    def test():
        for i in range(4):
            yield i
    
    t=test()
    t1=(i for i in t)
    t2=(i for i in t1)
    print(list(t1))
    print(list(t2))#t1,t2内部都没有值,而且只能遍历1次

    》》

    [0, 1, 2, 3]
    [def test():    for i in range(4):

    yield i
    
    t=test()
    t1=(i for i in t)
    t2=(i for i in t1)
    # print(list(t1)) 如果不运行list(t1)那么t2就能运行出值了
    print(list(t2))#t1,t2内部都没有值,而且只能遍历1次

    》》[0, 1, 2, 3]

     vip: 生成器只能遍历1次

  • 相关阅读:
    python-django-自定义分页
    self.user = serializer_field.context['request'].user KeyError: 'request
    无法ssh远程的解决办法
    关于put和patch区别的一篇文章
    一遍关于django rest framework serializer比较详细的笔记
    vim 简单配置(根据编程语言不同,自动缩进)
    django rest framework 的api返回html
    django rest frmaework jwt认证
    django 信号
    刘江的博客
  • 原文地址:https://www.cnblogs.com/python1988/p/10346010.html
Copyright © 2020-2023  润新知