如何用Python列表推导式实现双重if条件的筛选逻辑?
带双重条件的Python列表推导式写法
直接把原循环的两个if条件按顺序放到列表推导式中即可,对应代码如下:
a = ["apple", "banana", "cherry", "kiwi", 'mango'] c = [b for b in a if 'a' in b if b != 'apple'] print(c)
执行结果和原代码一致:
['banana', 'mango']
逻辑对应说明
原循环的嵌套判断结构,在列表推导式中可以直接转化为连续的两个if判断,顺序和原循环的判断逻辑保持一致,效果完全等价。你也可以把两个条件用and合并成一个判断,写法更简洁:
c = [b for b in a if 'a' in b and b != 'apple']
两种写法都能得到正确结果,连续if的写法更贴近原循环的嵌套结构,and合并的写法则更紧凑。
内容的提问来源于stack exchange,提问作者Loh Boon How
相关产品推荐
相关产品推荐

