Zec*_*eck 6 python function python-2.x python-3.x
我有一个hello函数,它需要n个参数(见下面的代码).
def hello(*args):
# return values
Run Code Online (Sandbox Code Playgroud)
我想从中返回多个值*args.怎么做?例如:
d, e, f = hello(a, b, c)
Run Code Online (Sandbox Code Playgroud)
解:
def hello(*args):
values = {} # values
rst = [] # result
for arg in args:
rst.append(values[arg])
return rst
a, b, c = hello('d', 'e', f)
a, b = hello('d', 'f')
Run Code Online (Sandbox Code Playgroud)
只需返回清单.:):D
Joh*_*ulé 10
所以,你想返回一个与args长度相同的新元组(即len(args)),其值是从args [0],args [1]等计算的.注意你不能修改'args '直接,例如你不能分配args [0] = xxx,这是非法的并且会引发TypeError:'tuple'对象不支持项目赋值.你需要做的是返回一个新的元组,其长度与len(args)相同.例如,如果您希望函数为每个参数添加一个,您可以这样做:
def plus_one(*args):
return tuple(arg + 1 for arg in args)
Run Code Online (Sandbox Code Playgroud)
或者以更冗长的方式:
def plus_one(*args):
result = []
for arg in args: result.append(arg + 1)
return tuple(result)
Run Code Online (Sandbox Code Playgroud)
然后,做:
d, e, f = plus_one(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
将返回一个3元素元组,其值为2,3和4.
该函数适用于任意数量的参数.
| 归档时间: |
|
| 查看次数: |
6333 次 |
| 最近记录: |