Den*_*din 2 python mapping arguments function list
我有以下Python代码:
data = ['1', '4.6', 'txt']
funcs = [int, float, str]
Run Code Online (Sandbox Code Playgroud)
如何使用相应索引中的数据调用每个函数作为函数的参数?现在我正在使用代码:
result = []
for i, func in enumerate(funcs):
result.append(func(data[i]))
Run Code Online (Sandbox Code Playgroud)
map(funcs,data) 不能与函数元组一起工作(是否有内置函数可以更简单?
您可以使用zip*将多个序列组合在一起:
zip([a,b,c,...], [x,y,z,...]) == [(a,x), (b,y), (c,z), ...]
Run Code Online (Sandbox Code Playgroud)
然后你可以迭代这个新序列,并使每个函数都适用于相应的数据.由于您只想将它们收集到列表中,因此列表理解比for循环要好得多:
result = [f(x) for f, x in zip(funcs, data)]
Run Code Online (Sandbox Code Playgroud)
注意:*itertools.izip如果您使用的是Python 2.x并且列表很长,请使用.)
| 归档时间: |
|
| 查看次数: |
2461 次 |
| 最近记录: |