【发布时间】:2021-01-22 13:39:37
【问题描述】:
我有 3 个函数(f1、f2 和 f3),每个函数接受一个输入并返回一个 str。
这些函数以接收输入之前由程序中的设置确定的顺序存储在列表中。每次运行程序时,它们的顺序可能不同:
# User A's run:
funcs = [f1, f1, f2, f1, f3]
# User B's run:
funcs = [f3, f3, f2]
在程序执行期间,将生成与funcs 的顺序相对应的输入列表。也就是说inputs列表中每个索引的item类型将是函数在funcs对应索引处所期望的正确类型:
# f1 expects int
# f2 expects float
# f3 expects str
funcs = [f1, f1, f2, f1, f3]
inputs = [0, 1, 3.14, 10, 'abc']
我需要将funcs 映射到inputs 元素并连接生成的字符串。目前我通过使用zip来解决这个问题:
result = ''.join(f(i) for f, i in zip(func, inputs))
还有其他方法可以实现这种类型的映射还是zip 是理想的方法?
【问题讨论】: