2013-05-19 2 views
0

У меня есть список экземпляров класса АPython - изменение элементов в списке

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' как ненулевым? – SuperSaiyan

+0

в моем решении Я просто «предположил», что ему нужен только первый ... –

ответ

1

Нет, нет. Требуется, по крайней мере, две петли независимо от того, как это было реализовано.

+0

не мог ли мое решение выше требовать только одну итерацию? –

+0

@ JoranBeasley: Из 'a', да. –

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 ...

Смежные вопросы