У меня есть список
l = [object0, object1, object2, object3, object4....object499]
максимальная длина не более 500
Все объекты имеют атрибуты x, y, z,
Я должен изменить object.y, если дубликаты в object.x как:
if object9.x == object10.x:
object9.y = object9.z * object9.a/1000
object10.y = object10.y - object9.z * object9.a/1000
Гарантируется, что дубликаты будут в последовательных объектах.
Может быть более 2 дубликатов ie например
object12.x == object13.x == object14.x
поэтому модификация будет продолжаться таким же образом с третьим дубликатом, основываясь на значении модифицированного второго дубликата.
Я написал al oop, чтобы сделать это, но подумал, что если есть какой-нибудь питон / более быстрый способ сделать это. Я использую python3 .7
РЕДАКТИРОВАТЬ:
tag = None
for i, o in enumerate(l):
if tag is None:
x_a = o.x
elif x_a == o.x #duplicate found
temp = o.y
c_over = 0
c_value = o[i-1].z * o[i-1].a/1000
if c_value < o[i-1].y:
o[i-1].y = c_value
c_over = temp - c_value #carry over value
o[i] = c_over # either zero of carry over value
x_a = o.x