二十三、python中的各种推导式

mac2025-02-10  14

列表推导式

列表推导式的一般语法为:列表名 = [满足条件元素或者和其相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件] 实例:

egg_list = ["egg%d"%i for i in range(10)] print(egg_list) #以上代码的输出结果为: ['egg0', 'egg1', 'egg2', 'egg3', 'egg4', 'egg5', 'egg6', 'egg7', 'egg8', 'egg9']

生成器表达式

生成器表达式是生成器的另一种实现方案,其一般语法为:生成器名 = (满足条件元素或者和其相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件) 实例:

g = (i for i in range(10)) #生成生成器g ret = g.__next__() #调用__next__()取值:ret的值为0

附: 生成器的特点

生成器当中的数据只能取一次生成器遵循惰性原则,即如果你不进行取值,其不进行运算

字典推导式

字典推导式的一般语法为:字典名= {满足条件元素或者和其相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件} 实例:

#实例1:将key值和value对调 dic = {1:'232',2:'23'} dic1 = {dic[i]:i for i in dic} #即可完成对调 #实例2:合并大小写对应的value值,将k统一成小写 dic = {'a':10,'b':34,'A':7,'Z':3} dic1 = {k.lower():dic.get(k.lower(),0)+dic.get(k.upper(),0) for k in dic.keys()} #即可完成上述功能

附: get()函数的说明:get(要查找的值的key,如果查找不到要返回的值)

集合推导式

集合内元素不可重复,故其自带结果去重功能;集合推导式的基本语法为:字典名= {满足条件元素或者和其相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件} 实例:

#创建集合推导式set1 set1 = {x**2 for x in [1,-1,1,2]} #set1的结果为:{1,4}

lambda表达式——匿名函数

匿名函数的关键字是lambda; lambda表达式的一般语法为:函数名 = lambda 参数 :函数体 注: 匿名函数必须要在一行写完 实例:

calc1 = lambda :2*2 #无参 #计算2*2 calc2 = lambda a : pow(a,2) #一个参数 #计算a的平方 calc3 = lambda a,b : pow(a,b) #多个参数 #计算a的b次方 lis = [calc1(),calc2(2),calc3(3,3)]#调用上面四个匿名函数 print(lis) #输出结果
最新回复(0)