如何用Python写for和while循环统计嵌套列表中内列表和等于k的数量
功能需求
定义一个接收整数k、整数嵌套列表l两个参数的函数,返回l中元素总和等于k的内列表的个数。
示例说明
调用sumToK(10,[[1,2],[1,2,3,4],[5,5,0],[8,2,3],[-15,25]])应返回3,原因是给定的5个内列表中有3个的元素总和恰好等于10。
允许使用sum、max、min、len等内置函数,需分别编写基于for循环和while循环的实现代码。
现有代码问题
你当前编写的代码错误原因是:直接将内列表x加到计数变量count中,没有计算内列表的元素总和,也没有做等于k的条件判断,不符合统计需求。错误代码如下:
def sumTotal(k, l): count = 0 for x in l: count += x return count
正确实现代码
基于for循环的版本
遍历嵌套列表中的每一个内列表,计算其元素总和,若总和等于k则计数加1:
def sumToK(k, l): count = 0 for inner_list in l: if sum(inner_list) == k: count += 1 return count
基于while循环的版本
通过索引遍历嵌套列表,每次按索引取出内列表做校验,索引超出列表长度时停止循环:
def sumToK(k, l): count = 0 index = 0 list_length = len(l) while index < list_length: if sum(l[index]) == k: count += 1 index += 1 return count
内容的提问来源于stack exchange,提问作者HUNTER FRASER
相关产品推荐
相关产品推荐

