我正在学习Python,并遇到了各种各样的争论。我不理解以下代码产生的输出:_list = [11,2,3]def print_list(*args): for value in args: a = value * 10 print(a)print_list(_list)当我运行程序时,我得到:[11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3, 11, 2, 3]据我了解,value从_list数组中保存一个元素,将其乘以 10 将生成列表[110, 20, 30]。为什么输出不同?
2 回答

莫回无
TA贡献1865条经验 获得超7个赞
因为函数的参数是*args
(带有*
),所以函数实际上接收传入参数的元组,因此args
变为([11,2,3],)
(包含传入列表的元组)。
您的函数遍历该元组中的值,给出value=[11,2,3]
。当你将一个列表乘以 10 时,你会得到一个长 10 倍的列表。
添加回答
举报
0/150
提交
取消