如何将数据列表映射到功能列表?

发布于 2021-01-29 15:00:31

我有以下Python代码:

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

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

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

map(funcs,data) 不能与函数列表一起使用(是否有内置函数使函数更简单?

关注者
0
被浏览
82
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用zip*将许多序列组合在一起:

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

    那么您可以迭代这个新序列,并使每个函数应用于相应的数据。因为您只想将它​​们收集到列表中,所以列表理解比for循环要好得多:

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看