J'ai une liste de dictionnaires. il y a plusieurs points dans la liste, certains sont multiples. Quand il y a une entrée multiple, je veux calculer la moyenne des x et des y de ce point. Mon problème est, que je ne sais pas comment parcourir la liste des dictionnaires pour comparer les ID des points!parcourir la liste des dictionnaires
quand j'utiliser quelque chose comme ça:
for i in list:
for j in list:
if i['id'] == j['id']:
point = getPoint(i['geom'])
....
désolé, le formattage est un peu délicat ... la deuxième boucle est dans la première ... je pense qu'il compare la première entrée la liste, donc c'est la même chose ... donc je dois commencer dans la deuxième boucle avec la deuxième entrée, mais je ne peux pas le faire avec i-1 parce que je suis le dictionnaire des trous ... Quelqu'un une idée? merci d'avance!
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
ok, je pense ... au moment des thats plus confus:) ...
Quelle langue utilisez-vous? – Jonn
J'utilise python – aleho
Que se passe-t-il si trois éléments ou plus ont le même «id»? Voulez-vous calculer la moyenne de chaque paire d'éléments? Ou voulez-vous regrouper tous les éléments avec le même «id» et prendre la moyenne du cluster? – unutbu