>>> 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