如何将函数应用于多个变量

时间:2018-06-21 11:21:55

标签: python python-3.x functional-programming

我需要检查多个变量,并对它们调用相同的函数

if isinstance(VarA,complex):
    VarA=SomeFunction(VarA)
if isinstance(VarB,complex):
    VarB=SomeFunction(VarB)
if isinstance(VarC,complex):
    VarC=SomeFunction(VarC)

是否可以以更短/更易读的方式编写此代码?

3 个答案:

答案 0 :(得分:4)

您可以这样做:

a, b, c = (f(x) if isinstance(x, complex) else x for x in [a, b, c])

当变量多于三个时,这变得很丑陋,因此,如果您发现自己需要大量用于执行相同计算的变量,则应考虑使用列表和循环:

List = [1, 2, 3 + 1j, 4, 5 - 2j]

processed = [f(x) if isinstance(x, complex) else x for x in List]

答案 1 :(得分:2)

一种解决方案是使用字典来保存可变数量的变量。

然后迭代字典并在满足条件的情况下修改值。

vars = {'A': VarA, 'B': VarB, 'C': VarC}

for k, v in vars.items():
    if isinstance(v, complex):
        vars[k] = SomeFunction(vars[k])

答案 2 :(得分:0)

您可以这样做

varA,varB,varC = (SomeFunction(var) if isinstance(var,complex) else var for var in [varA,varB,varC])