函数论证中的元组解包 [英] Tuple unpacking in function arguement

查看:38
本文介绍了函数论证中的元组解包的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在下面的函数中,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)

可以使用*的序列调用:

<预><代码>>>>func2(*[1, 2])12

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆