如何在Python中执行以下操作?
row = [unicode(x.strip()) for x in row if x is not None else '']
实质上:
你可以完全做到这一点,这只是一个订购问题:
[unicode(x.strip()) if x is not None else '' for x in row]
一般来说,
[f(x) if condition else g(x) for x in sequence]
而且,if仅对于具有条件的列表理解而言,
[f(x) for x in sequence if condition]
请注意,这实际上使用了一种不同的语言构造,即条件表达式,它本身不是理解语法的一部分,而ifafter则for…in是列表理解的一部分,用于从可迭代的源中筛选元素。
条件表达式可用于各种情况,其中你需要根据某些条件在两个表达式值之间进行选择。这与其他语言中存在的三元运算符?:相同。例如:
value = 123 print(value, 'is', 'even' if value % 2 == 0 else 'odd')