首页 > 技术文章 > Python 列表生成试中的if,if else

monkeyfather 2014-12-01 16:22 原文

>>> L = ['Hello', 'World', 18, 'Apple', None]
>>> [s.lower() for s in L if isinstance(s,str)]

在考虑保留非字符串内容时加入,if else方法。但放置在for in 语句之后则报错。

参考

关于if else放前面,而if放后面的问题。if else是个表达式,而单独if是个判断语句,这两个情形是不一样的。

x if A else c其实是一个表达式,如果A成立则为x,否则值取c。而if放后面,那是配合for循环加的判断语句。

python官方文档说的很清楚啦:

https://docs.python.org/3/reference/expressions.html#conditional-expressions

https://docs.python.org/3/reference/expressions.html#displays-for-lists-sets-and-dictionaries

 

推荐阅读