python推导式
Python推导式
1. 推导式概念
推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导。
- 列表(list)推导式
- 字典(dict)推导式
- 集合(set)推导式
2. 三种推导式原理相同,唯列表推导式应用最广泛。
-
列表推导式
-
基本格式
1 v1=[i for i in 可迭代对象] 2 v2=[i for i in 可迭代对象 if 条件] #条件为true才进行append 3 4 v1=[i for i in range(10)] 5 print(v1) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 6 7 v2=[i for i in range(10) if i >5] 8 print(v2) #[6, 7, 8, 9]
-
高级格式
1 v3=[lambda :100+i for i in range(10)] 2 print(v3[2]()) #109 ,v3在循环过程中函数一直没有执行,所有最后的列表中所有的值都是 lambda:100+9 3 4 v4=[lambda x:x*i for i in range(10)] 5 print(v4[0](2)) #18 ,v4在循环过程中,lambda函数没有执行,最终列表所有的值都是lambda x:x*9 6 7 def num(): 8 #num()=[lambda x:x*3,lambda x:x*3,lambda x:x*3lambda x:x*3] 9 return [lambda x:i*x for i in range(4)] 10 print([ m(2) for m in num() ]) #结果是[6,6,6,6]
-
-
集合推导式
-
基本格式
1 v1={i for i in 可迭代对象} 2 v2={i for i in 可迭代对象 if 条件} #条件为true才进行append 3 4 v1={i for i in range(10)} 5 print(v1) #{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
-
-
字典推导式
-
基本格式
1 v1={key:value for i in 可迭代对象} 2 v2={i for i in 可迭代对象 if 条件} #条件为true才进行append 3 4 v1={'key'+'%s'%i:i for i in range(5)} 5 print(v1) #{'key0': 0, 'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4}