Python - 修改列表中的项目

时间:2013-05-19 04:30:09

标签: python

我有一个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循环,我们需要迭代列表两次 - 有或没有理解 有没有办法更好地实现这一点。
我没有使用过滤器和地图,但觉得可能有更好的选择 感谢帮助。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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级......