zoukankan      html  css  js  c++  java
  • python基础之Day14

    一、生成器

    1、什么是生成器

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

    2、为什么要有生成器

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

     注:

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

    总结yield的功能

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

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

    yield  VS  return

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

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

    用yield写一个简单的range函数

    1
    2
    3
    4
    5
    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)

  • 相关阅读:
    关于JS中涉及的常用类型转换及运算符表达式
    关于JS脚本语言的基础语法
    钱、车、房、能力
    三数中找最大值
    C#语句
    进制转换
    自动拆装箱、可变参数
    使用dom4j解析xml
    jaxp的dom方式操作(查找、添加、修改、删除、遍历节点)
    xml-dtd
  • 原文地址:https://www.cnblogs.com/chicokiko/p/9202737.html
Copyright © 2011-2022 走看看