我有一个词典的列表。列表中有几个点,有些是多个点。当有多个条目时,我想计算这个点的x和y的平均值。我的问题是,我不知道如何遍历字典列表来比较点的ID!循环词典列表
当我使用类似的东西:
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 2010-08-11 12:42:13
我正在使用python – aleho 2010-08-11 12:43:40
如果三个或更多元素具有相同的“id”,会发生什么?你想计算每对元素的平均值吗?或者你是否想用相同的''id''来聚类所有的元素并且取平均值? – unutbu 2010-08-11 12:46:20