我想排隊一些數學表達式到python的地方,然後最後我想顯示他們的總結。排隊總結的東西,然後顯示它
我試圖做這樣的事情:
for i in range(0, n-1): sum_queue(pow(-1,i)/((2*i)+1))
print(sum(0)) #or sum("latest")
這可能嗎?
我想排隊一些數學表達式到python的地方,然後最後我想顯示他們的總結。排隊總結的東西,然後顯示它
我試圖做這樣的事情:
for i in range(0, n-1): sum_queue(pow(-1,i)/((2*i)+1))
print(sum(0)) #or sum("latest")
這可能嗎?
Python 2.7.5+ (default, Sep 19 2013, 13:48:49)
>>> queue = []
>>> n = 10
>>> for i in range(0, n-1):
... queue.append(pow(-1,i)/((2*i)+1))
...
>>> queue
[1, -1, 0, -1, 0, -1, 0, -1, 0]
>>> sum(queue)
-3
>>> queue = [pow(-1,i)/((2*i)+1) for i in range(0, n-1)]
>>> sum(queue)
-3
>>>
如果您不需要的臨時列表,你可以使用一個發電機:
>>> sum(pow(-1,i)/((2*i)+1) for i in range(0, n-1))
-3
下面我來@ warwaruk的答案評論,這可以縮短使用計數器。雖然它破壞了使用隊列的目的,但由於這裏唯一的操作是對數值進行求和,隊列並不一定需要。
從技術上講,如果你要對所有的值進行任何類型的算術運算繼append()
n = 10;
total = 0;
for i in range(0,n-1):
total += (pow(-1,i)/((2*i)+1));
print(total);
相反的附加價值的隊列,然後sum()
就不再需要排隊它會在同一個循環內一起完成。
如果你想看看漸近分析,它們都是O(n),但是這個代碼更短,並且會爲你節省一個函數調用加上另一個O(n)操作。
希望這回答你的問題:)
只是要清楚,隊列只持有一些數學表達式,對不對? – Alejandro
'sum(「latest」)'是什麼?目前還不清楚詢問 –