使用函数和* args遍历元组

时间:2019-08-04 17:44:42

标签: python

我正在尝试使用* args进行函数编写。它应该输入一定的数字,然后输出数字乘以10的乘积。

我正在学习使用* args,但是在获取输出时遇到了麻烦。我的结果仅输出函数中的第一个数字。我尝试过使用for循环,以为它会遍历每个字符,但是没有用。

def myfunc(*args):
for args1 in args:
    return args1*10

当我运行函数时:

myfunc(10.1,20)

预期输出应为

(101.0,200.0)

实际输出是

(101.0)

任何帮助将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:1)

如果我了解您,那就是您所需要的:

def myfunc(*args): 
    return tuple(map(lambda x: x*10, args))
可以在函数中以称为*args的列表的形式检索

args。您在这里所做的只是将第一个元素乘以10并返回它,因此函数停止了。

答案 1 :(得分:0)

您应该使用yield而不是return,以使函数返回生成器,然后可以在需要时将其转换为tuple

>>> def myfunc(*args):
...     for args1 in args:
...         yield args1*10
... 
>>> 
>>> myfunc(10.1,20)
<generator object myfunc at 0x7f20d1ae8ad0>
>>> 
>>> tuple(myfunc(10.1,20))
(101.0, 200)