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' がゼロ以外のリスト内のインスタンスを見つけ、その値をリスト内の他のすべてのメンバーに適用する必要があります。
1 つの一意のメンバーだけが y を非ゼロとして持つことが与えられます。
通常の for ループでは、理解の有無にかかわらず、リストを 2 回繰り返す必要があります。
これをより良く達成する方法はありますか?
私はフィルターとマップをあまり使用していませんが、より良いオプションがあると感じています。
助けていただければ幸いです。

4

2 に答える 2

1

いいえ、ありません。実装方法に関係なく、少なくとも 2 つのループが必要です。

于 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 に答える