zoukankan      html  css  js  c++  java
  • python 三元表达式 列表推导式,生成器表达式。递归,匿名函数, 内置函数

    三元表达式

    三元表达式仅应用于:

    1.条件成立返回一个值

    2、条件不成立返回一个值

    res = x if x>y else y

    print(res)

    name= input("姓名>>: ")
    res="sb" if name == "alex" else "nb"
    print(res)

    函数的递归

    函数的递归:函数递归调用,即在函数调用过程中, 又直接或间接的调用了函数本身。

    直接调用
    
    def foo():
        print("from foo")
        foo()
    foo()
    

    间接调用: def bar(): print(
    "from bar") foo() def foo(): print("from foo") bar() foo()

    递归分为两个阶段

    1、回溯:注意:一定要在满足某种条件结束回溯, 否则得无限递归

    2  递推。

    总结:

    1:所以递归一定要有一个明确的结束条件

    2:每进入下一次递归,问题的规模都应该减少

    3:在python中没有尾递归优化

    items=[1,[2,[3,[4,[5,[6,[7,[8,[9,[10,]]]]]]]]]]
    def tell(l):
        for item in l:
            if type(item) is not list:
                print(item)
            else:
                tell(item)
    
    tell(items)

    列表推导式

    l=[]
    for i in range(10):
        l.append("egg%s"%i)
    print(l)
    
    
    可以简写成
     l=['egg %s' %i  for i in range(100)]

    优点:方便,改变了编程习惯 可以称之声明式编程

    2、生成器表达式:

    1、把列表推导式的[]换成()就是生成器表达式

    2、优点:省内存,一次只生产一个值在内存中

    l=('egg%s' %i for i in range(1000) if i > 10)
    print(next(l))
     
  • 相关阅读:
    接口类和抽象类
    生成器和迭代器
    装饰器
    KMP算法(java,c++)
    java EE
    XML
    SQL语法
    单元测试
    JDBC
    SpringCloud
  • 原文地址:https://www.cnblogs.com/lx3822/p/9136743.html
Copyright © 2011-2022 走看看