我有兩個詞典列表。第一個列表包含範圍爲x,y,z,半徑爲的球體定義。第二個列表包含空間中的各個點,如x,y,z。這些列表都很長,因此遍歷每個列表並與所有值進行比較效率不高。有沒有辦法比較python中的兩個字典列表有效嗎?
我一直在嘗試地圖和減少術語,但他們都只在過濾功能中只有一個術語。什麼我使用的是以下幾點:
for curNode in nodeList:
for i in sphereList:
tmpRad = findRadius(i, curNode)
if float(tmpRad) <= float(i['radius']):
print "Remove node", curNode['num']
nodeRemovalList.append(curNode['num'])
break
其中i
是當前領域(x, y, z, rad)
和curNode
是節點(num, x, y, z)
。對於大型列表,這變得非常低效。我想過濾掉任何球體半徑內的節點。
typecast在那裏,因爲我沒有在初始讀取上進行類型轉換。我從一個txt文件獲取數據,因此它被解析爲字符串。我現在已經進行了修正。感謝關於代碼的建議。 – Shuo 2010-09-15 06:45:45