python条件推导式、列表推导式、字典推导式

目录

一、条件推导式

二、 列表推导式

1. 格式

2. 案例

三、字典递推式

1. 格式

2. 案例


一、条件推导式

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TWAS@py

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值