[英]Count or add list elements without using python built-in functions
我有這兩個簡單的函數可以對列表元素求和和計數,而無需使用諸如sum()和len()之類的標准python命令。
#sum the elements of a list
def sum_list(x):
n=0
for i in x:
n= n+i
return n
例如 如果x = [1,5]-應該返回6
#count the number of elements in a list
def count_list(x):
n=0
for i in x:
n= n+1
return n
例如 如果x = [1,5]-應該返回2
問題是我無法理解它們是如何工作的。 進一步來說:
1)n = 0在循環之前代表什么? 這是某種起點嗎?
2)之后,我可以理解for循環的作用,但是我無法理解n = n + i和n = n + 1的實際含義。 在這種情況下,“ n”是什么?為什么我加“ i”(n + i)得出和,而加“ 1”(n + 1)得出列表的長度?
利用打印語句來幫助您了解循環的工作方式。 (復制粘貼代碼並運行)以回答您的問題
n->是保存n+i
和n+1
值的變量,因此n+i
和n+1
的值存儲在n
(代碼從左到右移動)。 您可以將其視為起點
因此n+i
或n+1
進行所需的計算並將數字存儲在n
,然后在下一步中將其返回。
為回答您的問題,“為什么我加“ i”(n + i)給出總和而加“ 1”(n + 1)給出列表的長度?“ :每次循環迭代時, i
都會不斷變化,但在n+1
,每次僅變化n
。 因此,求和函數為您提供總和,而計數函數為您提供長度。
您可以使用len
來獲取列表中元素的數量
希望這可以幫助。
我添加了更多打印語句,以幫助您更好地理解它,運行代碼並查看是否有幫助。
def sum_list(x):
print("SUM FUNCTION START")
n = 0
for i in x:
print("n: ",n)
print("i: ",i)
n = n + i
print("n =",n,",","i= ",i)
print("n + i = ",n)
print()
print("SUM FUNCTION END")
print()
return n
def count_list(x):
print()
print("COUNT FUNCTION START")
n = 0
for i in x:
print("n: ",n)
print("i: ",i)
print("n =",n,",","i= ",i)
print("n + 1 = ",n)
n = n + 1
print()
print("COUNT FUNCTION END")
return n
#EASIER WAY TO COMPUTER LENGTH OF THE LIST USING len FUNCTION
def count_list2(x):
return len(x)
def main():
x = [1,2,3,4,5]
answer = sum_list(x)
print("Sum : ", answer)
elements = count_list(x)
elements2 = count_list2(x)
print()
print("There are", elements, "elements in the list")
print()
print("There are", elements2, "elements in the list")
main()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.