2016-10-27 5 views

ответ

0

Если вы хотите сделать это в одном цикле, просто перенесите уменьшить и сделать это в цикле:

xs, ys, zs = [], [], [] 
for point in points: 
    xs.append(point.x) 
    ys.append(point.y) 
    zs.append(point.z) 

Это может быть сделано более сжато с молнией:

>>> points = [types.SimpleNamespace(x=it, y=it+1, z=it*2+1) for it in range(3)] 
>>> points 
[namespace(x=0, y=1, z=1), namespace(x=1, y=2, z=3), namespace(x=2, y=3, z=5)] 
>>> list(zip(*((point.x, point.y, point.z) for point in points))) 
[(0, 1, 2), (1, 2, 3), (1, 3, 5)]