函数的Python变量参数

2024-03-29 09:24:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习Python,遇到了各种各样的争论。我不理解以下代码生成的输出:

_list = [11,2,3]
def print_list(*args):
    for value in args:
        a = value * 10
        print(a)
print_list(_list)

当我运行程序时,我得到:

^{pr2}$

据我所知,value包含_list数组中的一个元素,乘以10将生成列表[110, 20, 30]。为什么输出不同?在


Tags: in程序元素列表forvaluedefargs
2条回答

因为函数的参数是*args(带有一个*),所以您的函数实际上接收传入参数的元组,因此args变成{}(一个包含传入列表的元组)。在

您的函数迭代该元组中的值,给出value=[11,2,3]。当你把一个列表乘以10,你得到的列表就长10倍。在

可能您正在寻找的是扩展列表print_list(*_list),它将输入列表的每个元素作为函数参数传递,因此输出是 110 20 30。在

如果列表是numpy.array(_list) * 10,那么乘法也可以。在

相关问题 更多 >