Python:如何实现计算可变参数内所有元素总数量的函数?
问题分析与解决方案
你当前的代码return len(args)返回的是传入的参数个数,而不是每个参数内部元素的总数量——这就是为什么测试用例返回3(因为你传了3个参数),而不是期望的7。
修正思路
我们需要遍历*args中的每一个参数,分别计算每个参数的元素数量(用len()函数就可以,它对字符串、元组、列表、字典都适用:字典的len()返回键值对的数量,刚好符合统计需求),然后把这些数值累加起来。
修正后的代码
方式一:循环累加(可读性强)
def totSize(*args): total = 0 for item in args: total += len(item) return total
方式二:生成器表达式(简洁高效)
def totSize(*args): return sum(len(item) for item in args)
测试验证
执行print(totSize('abc', (1,), [1,2,3])),会计算3 + 1 + 3 = 7,完全符合你的预期结果。
补充说明
- 对于字典参数,比如传入
{'a':1, 'b':2},len()会返回2,这也符合统计元素(键值对)数量的需求; - 如果后续需要处理嵌套结构(比如列表里套列表),你可能需要递归实现,但根据当前需求,上面的代码就足够满足统计顶层元素数量的要求。
内容的提问来源于stack exchange,提问作者fiendzlayer
相关产品推荐
相关产品推荐

