簡體   English   中英

如何在python中將列表中的每個數字相互求和?

[英]How can i sum every number in list with each other in python?

所以,我有一個數字列表:

list = [4,5,65,94,3]

此循環將列表中的第一個數字與列表中的每個數字相加:

for i in list:
    sum = i + list[0]

我如何移動到列表中的下一個項目,以便我的循環將列表中的每個數字相互求和?

因此,這里有兩個誤解。

首先,該循環沒有按照您的描述進行。 假設sum是在其外部定義的,則添加的唯一值將在循環后保留,是列表中的最后一個元素以及列表的第一個位置中的任何元素。 對於您當前的列表,總和為7。

其次,已經有一個方便的功能可以做到這一點- sum -這將使您的任務變得很簡單。

sum([4,5,65,94,3])

但是,如果您堅持要自己這樣做,則必須設置一些內容:

  • 確保要累加的變量是數學運算的前哨值。 對於加法,它必須從0開始。對於乘法,它必須從1開始。
  • 增加到您的原始價值; 不要覆蓋其價值。 這將意味着total = total + itotal += i
  • 請記住,Python的for循環實際上是for-each循環。 i將通過您的列表,並依次綁定到每個值。

要修復代碼,您需要執行以下操作:

total = 0
li = [4,5,65,94,3]
for i in li:
    total += i

最后,請避免遮蓋函數名稱。 listsum已經定義為函數,並且您真的不想掩蓋它們。

不確定您要嘗試什么。 要在python中找到列表的總和,只需執行以下操作:

for i in li:
    total += i

您當前正在做的是將每次迭代的總和值更改為等於i加列表的第一個元素。 這將使您的總和在循環結束時等於7,因為它將最后一個元素(3)與第一個元素(4)相加。

另外,python有一個內置函數可以對列表中的數字求和,因此您的代碼可以簡化為:

li = [4,5,65,94,3]
total = sum(li)

編輯:正如其他人指出的那樣,避免將變量命名為與函數相同。

或者,如果您確實想使用索引進行迭代,則可以使用以下范圍函數來實現

對於范圍內的我(len(list)):

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM