# 单个条件筛选[i for i inrange(5)if i %2==0]# 等价于
list_ =[]for i inrange(5):if i %2==0:
list_.append(i)# 多重条件筛选[i for i inrange(5)if i %2==0if5> i >2]# 等价于
list_ =[]for i inrange(5):if i %2==0and2< i <5:
list_.append(i)
1.1.1.3 列表元素转换(长度不变,元素可变)条件在左
[i if i >2else0for i inrange(5)]# 等价于
list_ =[]for i inrange(5):if i %2>2:
list_.append(i)else:
list_.append(0)
1.1.1.4 综合应用
[i if i >3else0for i in list_a for j in list_b if j =="a"]
等价于
list_ =[]for i in list_a:for j in list_b:if j =="a":if i >3:
list_.append(i)else:
list_.append(0)print(list_)
1.2 字典推导式
{key:value for key, value inzip(range(5),range(5))}# 等价于 {0: 0, 1: 1, 2: 2, 3: 3, 4: 4}
1.3 集合推导式
{i for i inrange(5)}# 等价于{0,1,2,3,4} 无序,不重复
1.4 生成器推导式
(i for i inrange(5))# 等价于一个生成器对象 <generator object <genexpr> at 内存位置>