Skip to main content
 首页 » 编程设计

python之列表中的元组比函数需要的项目少 Python 3

2025年05月04日24davidwang456

我是编程和 Python 的新手,在上大学之前我正在自学,所以请保持温柔,我是新手。我希望我的英语不会有太多语法错误。

基本上,我在目前正在阅读的一本书中进行了此练习,将元组列表作为函数参数,然后获取每个元组中的每个项目并将其乘以二次方并对项目求和。

我的代码看起来像这样,如果我的函数调用包含与循环函数所需的参数数量相同的参数,则它可以正常工作:

def summary(xs): 
    for x,y,z in xs: 
        print( x*x + y*y + z*z) 
 
 
xs =[(2,3,4), (2,-3,4), (1,2,3)] 
 
summary(xs) 

但是,如果我使用元组少于函数定义的列表,我会得到一个错误:ValueError:没有足够的值来解压(预期 3,得到 0):

xs =[(2,3,4), (), (1,2,3)] 

我想知道如何制作一个函数来接受我之前显示的元组 () - 没有元组,函数将返回 0。我已经尝试了多种方法来解决这个问题 2 天了,谷歌搜索也是如此,但我发现我要么遗漏了一些东西,要么我不知道我可以使用的功能。谢谢大家的帮助。

请您参考如下方法:

一种方法是遍历元组值,这也是几乎所有编程语言中解决此问题的方法:

def summary(xs): 
    for item in xs: 
        s = 0 
        for value in item: 
            s += value**2 
        print(s) 

或者使用列表理解:

def summary(xs): 
   for item in xs: 
       result = sum([x**2 for x in item]) 
       print(result) 

另请注意,sum([]) 将为空的可迭代对象返回 0。