函数论证中的元组解包 [英] Tuple unpacking in function arguement
本文介绍了函数论证中的元组解包的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在下面的函数中,args[i]
应该通过它前面的 *
解包到函数 func 的参数中,但是传入的是一个列表.我错过了什么?
def mymap(func, *seq):args = list(zip(seq))ret = []对于范围内的 i(len(args)):打印(类型(参数[i]))ret.append(func(*args[i]))返回 retf = λ x: x+2mymap(f, [1,2,3])
解决方案
*
在函数定义中打包,在函数调用中解包.
定义一个新函数:
def func1(*args):打印(参数)
这个包:
<预><代码>>>>func1(1, 2)(1, 2)一个有两个参数的函数
def func2(a, b):打印(一)打印(b)
可以使用*
的序列调用:
In the following function, args[i]
should unpack into the arguments of the function func via the *
before it, however what gets passed in is a list. What am I missing?
def mymap(func, *seq):
args = list(zip(seq))
ret = []
for i in range(len(args)):
print(type(args[i]))
ret.append( func(*args[i]) )
return ret
f = lambda x: x+2
mymap(f, [1,2,3])
解决方案
The *
packs in a function definition and unpacks in a function call.
Defining a new function:
def func1(*args):
print(args)
this packs:
>>> func1(1, 2)
(1, 2)
A function with two parameters
def func2(a, b):
print(a)
print(b)
can be called with a sequence using the *
:
>>> func2(*[1, 2])
1
2
这篇关于函数论证中的元组解包的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文