python - 如何将数据列表映射到函数列表?

标签 python list function arguments mapping

我有以下 Python 代码:

data  = ['1', '4.6', 'txt']
funcs = [int, float, str]

如何将相应索引中的数据作为函数的参数来调用每个函数? 现在我正在使用代码:

result = []
for i, func in enumerate(funcs):
    result.append(func(data[i]))

ma​​p(funcs, data) 不适用于函数列表(是否有内置函数可以更简单地做到这一点?

最佳答案

你可以 use zip * 将多个序列组合在一起:

zip([a,b,c,...], [x,y,z,...]) == [(a,x), (b,y), (c,z), ...]

然后您可以迭代这个新序列并使每个函数应用于相应的数据。由于您只想将它​​们收集到一个列表中,list comprehension比 for 循环好得多:

result = [f(x) for f, x in zip(funcs, data)]

注意:* 使用 itertools.izip如果您使用的是 Python 2.x 并且列表很长。)

关于python - 如何将数据列表映射到函数列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848829/

相关文章:

python - 无法在 django 中找出正确的 json 查询集

python - 用列表中的一项替换字符串中的一项

c - 函数返回 int 但出现奇怪的行为

C 函数返回分配给非常量指针的常量指针 - 警告不是错误

Javascript函数,知识少

python - 元组在赋值中解包

python - Django Rest Framework - 在序列化程序中获取相关模型字段

python - 用奇异矩阵计算求解方程组

python - 在 Python 中将列表分成一对

来自并行文件的 Python 元组