2024-03-29 09:24:07 发布
网友
我正在学习Python,遇到了各种各样的争论。我不理解以下代码生成的输出:
_list = [11,2,3] def print_list(*args): for value in args: a = value * 10 print(a) print_list(_list)
当我运行程序时,我得到:
据我所知,value包含_list数组中的一个元素,乘以10将生成列表[110, 20, 30]。为什么输出不同?在
value
_list
[110, 20, 30
因为函数的参数是*args(带有一个*),所以您的函数实际上接收传入参数的元组,因此args变成{}(一个包含传入列表的元组)。在
*args
*
args
您的函数迭代该元组中的值,给出value=[11,2,3]。当你把一个列表乘以10,你得到的列表就长10倍。在
value=[11,2,3]
可能您正在寻找的是扩展列表print_list(*_list),它将输入列表的每个元素作为函数参数传递,因此输出是 110 20 30。在
print_list(*_list)
110 20 30
如果列表是numpy.array(_list) * 10,那么乘法也可以。在
numpy.array(_list) * 10
因为函数的参数是}(一个包含传入列表的元组)。在
*args
(带有一个*
),所以您的函数实际上接收传入参数的元组,因此args
变成{您的函数迭代该元组中的值,给出
value=[11,2,3]
。当你把一个列表乘以10,你得到的列表就长10倍。在可能您正在寻找的是扩展列表
print_list(*_list)
,它将输入列表的每个元素作为函数参数传递,因此输出是110 20 30
。在如果列表是
numpy.array(_list) * 10
,那么乘法也可以。在相关问题 更多 >
编程相关推荐