在不使用python内置函数的情况下计算或添加列表元素

时间:2016-10-27 12:23:01

标签: python list count sum built-in

我有两个简单的函数来汇总和计算列表元素,而不使用标准的python命令,如sum()len()

#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)给出列表的长度?

1 个答案:

答案 0 :(得分:2)

利用print语句帮助您了解循环的工作原理。 (复制粘贴代码并运行) 回答你的问题

n - >是保存n+in+1值的变量,因此n+in+1的值存储在n中(代码从左向右移动) 。您可以将其视为起点

所以n+in+1执行所需的计算并将数字存储在n中,然后在下一步中将其返回。

回答你的问题"为什么如果我添加"我" (n + i)在添加" 1"时给出总和。 (n + 1)给出列表的长度?" :i将随着每次循环迭代而不断变化,但在n+1中,每次只有n更改。因此,sum函数为您提供总和,而count函数为您提供长度。

您可以使用len获取列表中的元素数量

希望这有帮助。

我添加了更多的print语句,以帮助您更好地理解它,运行代码并查看它是否有帮助。

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()