python if elif else_Python如何一行写完if elif else列表推导式

Python中的if elif else结构通常如下:

if cond1:

a=1

elif cond2:

a=2

else:

a=3

在特殊情况下,我们可能希望把这个条件语句写成一行,如(列表推导式中)。

结论就是,将上述结构改为:

非列表: 结果甲 if 条件甲 else 结果乙 if 条件乙 else 结果丙

列表推导式: [结果甲 if 条件甲 else 结果乙 if 条件乙 else 结果丙 for xx in list]

列表推导式筛选包含某个值的数据: [结果甲 for xx in list if 条件甲]

如下例:

希望对一个字符串数据进行判断,获取一个该二手房信息属于哪种类型的房产:判断依据就是,如果字符串中含有别墅则是别墅,如果含有车位即为车位,其他为高层。

a='大鼎世纪滨江 | 车位 | 39.09平米 | 东 | 无电梯'

b='恒大城二期 | 2室2厅 | 71.49平米 | 东南 | 精装 | 有电梯'

c='协信彩云湖1号 | 叠拼别墅 | 5室2厅 | 280.49平米 | 南 | 简装 | 无电梯'

d=['大鼎世纪滨江 | 车位 | 39.09平米 | 东 | 无电梯',

'恒大城二期 | 2室2厅 | 71.49平米 | 东南 | 精装 | 有电梯',

'协信彩云湖1号 | 叠拼别墅 | 5室2厅 | 280.49平米 | 南 | 简装 | 无电梯']

#实现代码

tpye="别墅" if "别墅" in a else "车位" if "车位" in a else "高层"

#结果

In [177]: "别墅" if "别墅" in a else "车位" if "车位" in a else "高层"

Out[177]: '车位'

In [178]: "别墅" if "别墅" in b else "车位" if "车位" in b else "高层"

Out[178]: '高层'

In [179]: "别墅" if "别墅" in c else "车位" if "车位" in c else "高层"

Out[179]: '别墅'

#对于列表推导式

In [180]: ["别墅" if "别墅" in x else "车位" if "车位" in x else "高层" for x in d]

Out[180]: ['车位', '高层', '别墅']

#对于列表推导式,筛选只包含某个词的的数据

In [181]: ["别墅" for x in d if "别墅" in x]

Out[181]: ['别墅']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值