У меня есть список словарей. в списке есть несколько точек, некоторые из них несколько. Когда есть множественная запись, я хочу рассчитать среднее значение x и y этой точки. Моя проблема в том, что я не знаю, как прокрутить список словарей, чтобы сравнить идентификаторы точек!цикл через список словарей
, когда я использовать что-то вроде этого:
for i in list:
for j in list:
if i['id'] == j['id']:
point = getPoint(i['geom'])
....
К сожалению, верстка немного сложнее ... второй цикл внутри первой ... я думаю, что он сравнивает первую запись из список, так что это одно и то же ... так что мне нужно начинать во втором цикле со второй записи, но я не могу сделать это с i-1, потому что я - словарь с отверстиями ... Кто-то идея? Заранее благодарю!
for j in range(1, len(NEWPoint)):
if i['gid']==j['gid']:
allsamePoints.append(j)
for k in allsamePoints:
for l in range(1, len(allsamePoints)):
if k['gid']==l['gid']:
Point1 = k['geom']
Point2=l['geom']
X=(Point1.x()+Point2.x())/2
Y=(Point1.y()+Point2.y())/2
AVPoint = QgsPoint(X, Y)
NEWReturnList.append({'gid': j['gid'], 'geom': AVPoint})
del l
for m in NEWReturnList:
for n in range(1, len(NEWReturnList)):
if m['gid']==n['gid']:
Point1 = m['geom']
Point2=n['geom']
X=(Point1.x()+Point2.x())/2
Y=(Point1.y()+Point2.y())/2
AVPoint = QgsPoint(X, Y)
NEWReturnList.append({'gid': j['gid'], 'geom': AVPoint})
del n
else:
pass
нормально, я думаю, что ... на данный момент тот более запутанным:) ...
Какой язык вы используете? – Jonn
Я использую python – aleho
Что должно произойти, если три или более элемента имеют один и тот же '' id''? Вы хотите рассчитать среднее значение для каждой пары элементов? Или вы хотите сгруппировать все элементы с одним и тем же «id» и взять среднее значение кластера? – unutbu