• 生成器+三元表达式+列表生成式+生成器表达式


    一、生成器

    1、什么是生成器

      在函数内但凡出现yield关键字,再调用函数就不会执行函数体代码,会返回一个值,该值称之为生成器,生成器本质就是迭代器

    2、为什么要有生成器

     生成器是一种自定义迭代器的方式

     注:

      生成器在刚刚生成时不执行里面任何代码

    总结yield的功能

    1、提供一种自定义迭代器的方式

    2、yield可以暂停住函数,返回值

    yield  VS  return

    相同点:都是用在函数内,都可以返回值,没有类型限制,没有个数限制

    不同点:return只能返回一次值,yield可以返回多次值

    用yield写一个简单的range函数

    def my_range(start,stop,step=1)
        while stat<stop:
            yield start
            start+=step
    g=my_range(0,4)
    

     二、杂项

    1、三元表达式

    条件成立时返回值   if条件  else  条件不成立时返回值

    例如:

    def  max2(x,y)

      if x>y:

        return x

      else:

        return y

    x=10

    y=20

    max2(x,y)

    上述功能可以直接使用三元表达式实现:

    res=x  if    x>y   else   y

    print(res)

    2、列表生成式

    l=[item**2 for item in range(1,11)]

    print(1)

    names=['egon','alex_xx','wupeiqi','yuanhao']

    nums=[len(name) for name in names if not name.endswith('xx')]

    print(nums)

    3、字典生成式

    keys=['name','age','sex']

    values=['egon',18,'male']

    d={k:v for k,v in zip(keys,values)}

    print(d)

    3、生成器表达式

    g=(i  for  i  in  range(10))

      print(g)

  • 相关阅读:
    【linux 爱好者群】程序猿的那些聊天记录
    开发技巧记录
    tcmalloc 内存分析
    mktime很慢就自己去实现一个吧
    bash变量常用技巧
    文本处理sed常用操作
    【TED】如何掌握你的自由时间
    vim粘贴代码问题
    工作方式的反思-20170319
    【one day one linux】find 用法详解小记
  • 原文地址:https://www.cnblogs.com/xiaocao736427460/p/9177985.html
Copyright © 2020-2023  润新知