簡體   English   中英

在不使用python內置函數的情況下計算或添加列表元素

[英]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+in+1值的變量,因此n+in+1的值存儲在n (代碼從左到右移動)。 您可以將其視為起點

因此n+in+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.

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