Pythonic在for循环中处理两个语句的方法?

时间:2014-07-22 06:41:55

标签: python

这是这种做法的最蟒蛇方式 -

ys = []
for x in xs:
    z = compute_something(x)
    #z is an object of some class
    ys.append(z.a_property_of_z)

return ys

或者我可以在一些聪明的列表理解中处理上述内容吗?或函数式编程?还是其他一些蟒蛇魔法?

2 个答案:

答案 0 :(得分:5)

你可以做到

return [compute_something(x).a_property_of_z for x in xs]

答案 1 :(得分:4)

如果您只想收集a_property_of_z属性,则可以将计算和属性访问结合起来:

return [compute_something(x).a_property_of_z for x in xs]

compute_something()的返回值可以直接在列表推导中引用。