我有一個詞典的列表。列表中有幾個點,有些是多個點。當有多個條目時,我想計算這個點的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