0

我有一个 A 类的实例列表

class A:
def __init__(self,ox,oy):
self.x=ox
self.y=oy

list1=[A(3,0),A(5,0),A(7,3),......]

现在我需要找出列表中 y' 为非零的实例 - 并将该值应用于列表中的所有其他成员。
假设只有一个唯一成员的 y 非零。
使用通常的 for 循环,我们需要迭代列表两次 - 有或没有理解。
有没有办法更好地实现这一点。
我没有太多使用过滤器和地图,但觉得可能有更好的选择。
帮助表示赞赏。

4

2 回答 2

1

不,没有。无论如何实现,都至少需要两个循环。

于 2013-05-19T04:33:18.767 回答
0
import numpy

a = numpy.array([[3,0],[5,0],[7,3]])
zero_mask = a[:,1] == 0

a[zero_mask] = a[~zero_mask][0]

不幸的是,它不使用您的 A 类...

于 2013-05-19T04:33:36.797 回答