目录
一、条件推导式
value1 if 条件判断 else value2
value1 : 当条件成立的时候执行value1
value2 : 当条件不成立的时候执行value2我会带伞 如果 天气下雨的话 否则 就不带伞了
例:判断一个数是奇数还是偶数
传统写法
x = 11
if x%2 == 0:
print("x是一个偶数")
else:
print("x是一个奇数")
利用条件推导式
y = 15
print("这是一个偶数") if y%2 == 0 else print("y是一个奇数")
二、 列表推导式
1. 格式
列表推导式得到的结果还是列表
格式1:value1 for i in data if 判断条件
value1: 当条件成立的时候执行
i 循环中的变量
data : 序列
if :判断的条件格式2:value1 if 判断条件 else value2 for 变量 data
value1: 在for循环中,if判断条件成立执行的代码
value2 :在for循环中,if判断条件不成立执行的代码
2. 案例
例1: 获取0 - 20 之间的偶数乘以10,并统计所有得到的结果
传统写法
numbers = []
for i in range(21):
if i % 2 == 0:
j = i * 10
numbers.append(j)
print(numbers)
列表递推式写法
# 利用格式1
numbers1 = [i*10 for i in range(21) if i % 2 == 0]
print(numbers1)
例2:获取0 - 20 之间的偶数乘以10,奇数乘以100 并统计所有得到的结果
传统写法
numbers2 = []
for i in range(21):
if i % 2 == 0:
j = i * 10
numbers2.append(j)
else:
j = i * 100
numbers2.append(j)
print(numbers2)
列表递推式写法
# 利用格式2
numbers3 = [i*10 if i % 2 == 0 else i*100 for i in range(21)]
print(numbers3)
三、字典递推式
1. 格式
格式1:{value1 for 变量 in 序列 if 判断条件 }
格式2:{value1 if 判断条件 else value2 for 变量 in 序列}
循环里面有个判断,如果条件成立value1,不成立value2
2. 案例
例1: 提取字典中的小写key值的键值对
dict_source = {"a":10,"B":20,"C":True,"D":"hello world","e":"python教程"}
# 需求 提取字典中的小写key值的键值对
dict1 = {}
for key,value in dict_source.items():
# 判断是否是小写 key.islower() key.isupper() 判断是否是大写
if key.islower():
dict1[key] = value
print(dict1)
dict1_1 = {key:value for key,value in dict_source.items() if key.islower()}
例2: 将所有的key都变成小写
dict1_2 = {key.lower():value for key,value in dict_source.items()}
print(dict1_2)
例3: 将所有小写的key的值都变成 小明
dict4 = {key:"小明" if key.islower() else value for key,value in dict_source.items()}
print(dict4)