我正在做一個重力模擬器,我需要計算作用於每個物體的合力。如何遍歷字典中的每一對項目
爲了做到這一點,我需要遍歷字典(id: instance of Body class)
中的每一對物體,並獲得這兩個物體之間的引力。然後,我會加起來所有的力量,並得到結果。
但是,如何迭代Python中的每一對字典中的項目?如果天體被保存在一個列表中,這將是簡單的:
for i in range(len(bodies)):
for j in range(len(bodies) - i - 1):
k = j - i + 1
b1 = bodies[i]
b2 = bodies[k]
注:
順便說一句,如果你使用的列表,這將仍然工作,即使你想支持大量的機構;你可以使用['O(n * log n)'算法](http://en.wikipedia.org/wiki/N-body_simulation#Calculation_optimizations)而不是'O(n * n)'。請參閱「編程珍珠」一書中的討論。 – jfs