列表推导式(list comprehension)是利用其他列表创建新列表(类似于数学术语中的集合推导式)的一种方法.它的工作方式类似于for循环,也很简单. 列表推导式书写形式: [表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件] 举例说明 #!/usr/bin/python # -*- coding: utf-8 -*- li = [1,2,3,4,5,6,7,8,9] print [x**2 for x in li] print [x**2 for
Python里面有个很棒的语法糖(syntactic sugar),它就是 list comprehension ,有人把它翻译成“列表推导式”,也有人翻译成“列表解析式”.名字听上去很难理解,但是看它的语法就很清晰了.虽然名字叫做 list comprehension,但是这个语法同样适用于dict.set等这一系列可迭代(iterable)数据结构. 语法规范: out_list = [out_express for out_express in input_list if out_expr
在Python中lambda函数是什么? It is a single expression anoymous function often used as inline function. lambda 匿名函数 表达式及定义 lambda [ arg1 [arg2, arg3, … argN] ] : expression 在lambda右侧的式子中,冒号左边的为参数值,右边的为计算表达式. 实例说明 1.单层参数求和 现在假设需要对两个数进行求和运算.对于正常的逻辑代码,不难写出如下代码:
三目运算符 # 三目(元)运算符:就是 if...else...语法糖 # 前提:简化if...else...结构,且两个分支有且只有一条语句 # 注:三元运算符的结果不一定要与条件直接性关系 cmd = input('cmd: ') print('可以转化为数字') if cmd.isdigit() else print('不可以转化为数字') a = 20 b = 30 res = a if a > b else b # 求大值 print(res) res = 'b为小值' if a >
三元表达式 三元表达式仅应用于: 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([i for i in range(9)]) # 原型 print([i*i for i in range(9)]) egg_list=['鸡蛋%s'%i for i in range(10)] print(egg_list) # 生成器表达式 g = (i for i in range(10)
Lambda 函数 Lambda 函数是一种比较小的匿名函数--匿名是指它实际上没有函数名. Python 函数通常使用 def a_function_name() 样式来定义,但对于 lambda 函数,我们根本没为它命名.这是因为 lambda 函数的功能是执行某种简单的表达式或运算,而无需完全定义函数. lambda 函数可以使用任意数量的参数,但表达式只能有一个. x = lambda a, b : a * b print(x(5, 6)) # prints '30' x = lambd
[每一个元素或者是和元素相关的操作 for 元素 in 可迭代数据类型] #遍历之后挨个处理[满足条件的元素相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件] #筛选功能 列表推导式例一.30以内所有能被3整除的数 ret = [i for i in range(30) if i%3 == 0] print(ret) 列表推导式 例二.30以内所有能被3整除的数的平方 ret = [i*i for i in (1,2,3,4) if i%3 == 0] print(ret)
列表推导式 egg_list=['鸡蛋%s'%i for i in range(10)] print(egg_list) 列表推导式 推导过程 egg_list = [] for i in range(10): egg_list.append('鸡蛋%s'%i) print(egg_list) print([i*i for i in range(10)]) for循环 生成器表达式 g = (i for i in range(10)) print(g) for i in g: print(i)