python条件表达式和解析语法

    技术2022-07-10  165

    python条件表达式和解析语法

    条件表达式

    条件表达式可以取代一个简单的控制结构 一般语法表达式的语法形式:   expr1 if condition else expr2 条件为真,执行expr1;条件为假,执行expr2 相当于java或c++中的语法”condition ? expr1 : expr2“

    实例–将变量n的绝对值传递给一个函数
    使用传统的控制结构 if n>= 0: param = n else: param = -n result = foo(param) 条件表达式的语法中 # 第一种写法 param = n if n>= 0 else -n result = foo(param) # 第二种写法 result = foo(n if n>= 0 else -n)

    缩短源代码避免了更繁琐的控制结构


    解析语法

    列表解析语法

    一般形式   [expression for value in iterable if condition] experssion 和 condion 都取决于value,而if子句是可选的 等价于:

    result = [] for value in iterable: if condition: result.append(experssion)
    具体的列子–1~n的平方列表是[1,4,9,16,25,···]
    传统的方式实现 squras = [] for k in range(1, n+1): squras.append(k*k) 使用列表解析 squras = [k*k for k in range(1, n+1)] 求一个整数n的因子的列表 factors = [k for k in range(1,n+1) if n%k == 0]

    列表解析,集合解析,生成器解析,字典解析

    [k*k for k in range(1, n+1)] 列表解析{k*k for k in range(1, n+1)} 集合解析(k*k for k in range(1, n+1)) 生成器解析{k : k*k for k in range(1, n+1)} 字典解析

    二维数组

    a = [[i for i in range(4)] for y in range(4)] """执行结果 [[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]] b = [[i for i in (1,2,3)]for y in range(10)] """ """执行结果 [[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]] """
    Processed: 0.010, SQL: 9