Python-修改列表中的项
我有一个a类的实例列表Python-修改列表中的项,python,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循环,我们需要迭代列表两次,无论理解与否。 有没有更好的方法来实现这一点。 我没有太多地使用过滤器和映射,但觉得可能有更好的选择。 谢谢你的帮助。不,没有。无论如何
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循环,我们需要迭代列表两次,无论理解与否。
有没有更好的方法来实现这一点。
我没有太多地使用过滤器和映射,但觉得可能有更好的选择。
谢谢你的帮助。不,没有。无论如何实现,至少需要两个循环
import numpy
a = numpy.array([[3,0],[5,0],[7,3]])
zero_mask = a[:,1] == 0
a[zero_mask] = a[~zero_mask][0]
不幸的是,它没有使用您的A类…如果有多个
A
的实例且y
为非零会怎么样?在我的解决方案中,我只是“假设”他只想要第一个……我的上述解决方案不需要一次迭代吗?@JoranBeasley:ofA
,是的。