Python基础语法(五)--推导式


条件推导式 if


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: value1 for i in data if 判断条件
示例 :[i*10 for i in range(21) if i % 2 == 0]
value1: 当条件成立的时候执行
i 循环中的变量
data : 序列
if :判断的条件
格式2: value1 if 判断条件 else value2 for 变量 data
示例2:[i*10 if i % 2 == 0 else i*100 for i in range(21)]
value1: 在for循环中,if判断条件成立执行的代码
value2 :在for玄幻中,if判断条件不成立执行的代码
##示例:
# 需求 获取0 - 20 之间的偶数乘以10,并统计所有得到的结果
#传统写法
numbers = []
for i in range(21):
    if i % 2 == 0:
        j = i * 10
        numbers.append(j)
print(numbers)

# 列表推导式写法
numbers1 = [i*10 for i in range(21) if i % 2 == 0]
print(numbers1)

# 获取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)
numbers3 = [i*10 if i % 2 == 0 else i*100 for i in range(21)]

字典推导式


格式:{value1 for 变量 in 序列 if 判断条件 }
示例1 :{key:value for key,value in dict_source.items() if key.islower()}
格式 : value1 if 判断条件 else value2 for 变量 in 序列
示例2 :{key:"庞科" if key.islower() else value for key,value in dict_source.items()}
循环里面有个判断,如果条件成立value1,不成立value2
##示例
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()}

print(dict1_1)

# 需求:将所有的key都变成小写
dict1_2 = {key.lower():value for key,value in dict_source.items()}
print(dict1_2)

# 需求 : 将所有小写的key的值都变成 庞科
dict3 = {}
for key,value in dict_source.items():
    if key.islower():
        dict3[key] = "庞科"
    else:
        dict3[key] = value
print(dict3)

dict4 = {key:"庞科" if key.islower() else value for key,value in dict_source.items()}
print(dict4)